我有一个正则表达式,正则表达式的一部分应该不区分大小写.
例:
/Guest post by ([A-Z][a-z]+\s[A-Z][a-z]+)/
"来宾帖子"应该不区分大小写,但下半部分显然需要区分大小写,因为它正在寻找名字+姓氏,每个字母大写第一个字母.
所以,如果我这样做
/Guest post by ([A-Z][a-z]+\s[A-Z][a-z]+)/i
它不会起作用,因为现在它会匹配诸如"小狗的客人帖子"这样的东西,我不想要.
但是,它需要与"布莱恩威廉姆斯的宾客游戏"相匹配.
使用不区分大小写的修饰符模式:
(?i:)
在你的情况下:
(?i:Guest post by )([A-Z][a-z]+\s[A-Z][a-z]+)
工作示例:http://regex101.com/r/pW1gV9
或者(感谢@robertodecumex!)您可以使用修饰符范围,如果您想从捕获中排除结果,这将非常方便.
(?i)Guest post by(?-i) ([A-Z][a-z]+\s[A-Z][a-z]+)