正則前面的 (?i) (?s) (?m) (?is) (?im) 是什么意思


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

  另外,還可以用(?i:exp)或者(?i)exp(?-i)來指定匹配的有效范圍。

 

附:

 

.表示除\n之外的任意字符
*表示匹配0-無窮
+表示匹配1-無窮
多行模式參考實例: 點擊打開鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM