Fel*_*ing 12
一般来说,它并不意味着什么,甚至可能导致错误(如果问号不遵循有效字符).但是某些字符确实有效,即如果此字符也用作修饰符.
regular-expressions.info说明了这个特殊的语法:
现代正则表达式风格允许您仅将修饰符应用于正则表达式的一部分.如果
?ism在正则表达式的中间插入修饰符(),则修饰符仅适用于修饰符右侧的正则表达式部分.您可以通过在前面加上减号来关闭模式.减号后的所有模式都将关闭.Eg(?i-sm)打开不区分大小写,并关闭单行模式和多行模式.并非所有正则表达式都支持这一点.JavaScript和Python将所有模式修饰符应用于整个正则表达式.它们不支持(
?-ismx)语法,因为当模式修饰符应用于整个正则表达式时,关闭选项是没有意义的.默认情况下,所有选项均已关闭您可以快速测试正在使用的正则表达式处理模式修饰符的方式.正则表达式
(?i)te(?-i)st应该匹配test和TEst,但不teST还是TEST.
?i 意味着这些字符后面的所有内容都应该不区分大小写.
另请注意,正如文中所说,并非所有正则表达式都支持此语法.