Q经常看见的正则前面的 (i) (s) (m) (is) (im) 是什么意思?
  sjr1u1Lqr9Qx 2023年11月02日 38 0

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-无穷

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
sjr1u1Lqr9Qx