我有一个正则表达式,正则表达式的一部分应该不区分大小写。
示例:
/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
它不会起作用,因为现在它会匹配“小狗的客人邮寄”这样的东西,这是我不想要的。
然而,它需要与“布莱恩威廉姆斯的宾客游戏”相匹配。
答案 0 :(得分:12)
使用不区分大小写的修饰符模式:
(?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]+)
答案 1 :(得分:1)
你需要像这样的Regexp组合
/#{/guest post by/i} #{/[A-Z][a-z]+\s[A-Z][a-z]/}/