正则前面的 (?i) (?s) (?m) (?is) (?im)

时间:2023-03-09 05:24:49
正则前面的 (?i) (?s) (?m) (?is) (?im)

(?i) 表示所在位置右侧的表达式开启忽略大小写模式
(?s) 表示所在位置右侧的表达式开启单行模式
(?m) 表示所在位置右侧的表示式开启指定多行模式
(?is) 更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配
(?im) 更改 ^ 和 $ 的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字符串的开头和结尾匹配

注意:(?s)通常在匹配有换行的文本时使用
注意:(?m)只有在正则表达式中涉及到多行的“^”和“$”的匹配时,才使用Multiline模式,上面的匹配模式可以组合使用,比如(?is),(?im)
另外,还可以用(?i:exp)或者(?i)exp(?-i)来指定匹配的有效范围

附:
.表示除\n之外的任意字符
*表示匹配0-无穷
+表示匹配1-无穷