Q:經(jīng)??匆姷恼齽t前面的 (?i) (?s) (?m) (?is) (?im) 是什么意思?
A: 稱為內(nèi)聯(lián)匹配模式,通常用內(nèi)聯(lián)匹配模式代替使用枚舉值RegexOptions指定的全局匹配模式,寫起來更簡潔。
(?i) 表示所在位置右側(cè)的表達(dá)式開啟忽略大小寫模式
(?s) 表示所在位置右側(cè)的表達(dá)式開啟單行模式。
更改句點(diǎn)字符 (.) 的含義,以使它與每個(gè)字符(而不是除 \n 之外的所有字符)匹配。
注意:(?s)通常在匹配有換行的文本時(shí)使用
(?m) 表示所在位置右側(cè)的表示式開啟指定多行模式。
更改 ^ 和 $ 的含義,以使它們分別與任何行的開頭和結(jié)尾匹配,
而不只是與整個(gè)字符串的開頭和結(jié)尾匹配。
注意:(?m)只有在正則表達(dá)式中涉及到多行的“^”和“$”的匹配時(shí),才使用Multiline模式。
上面的匹配模式可以組合使用,比如(?is),(?im)。
另外,還可以用(?i:exp)或者(?i)exp(?-i)來指定匹配的有效范圍。