【发布时间】:2014-01-14 13:45:18
【问题描述】:
我一直在使用 PCRE 正则表达式,我看到一些表达式以 g 或 i 或两者都以 gi 结尾。例如
/-([a-z])/gi
/'/g
所以我的问题是 pcre 中 $i$ 和 $g$ 的含义是什么?我已经扫描了 pcre 的文档,但没有发现任何相关内容。
【问题讨论】:
我一直在使用 PCRE 正则表达式,我看到一些表达式以 g 或 i 或两者都以 gi 结尾。例如
/-([a-z])/gi
/'/g
所以我的问题是 pcre 中 $i$ 和 $g$ 的含义是什么?我已经扫描了 pcre 的文档,但没有发现任何相关内容。
【问题讨论】:
i、g 是标志(或模式)。
i 表示忽略大小写。 /[a-z]/i 匹配小写、大写字母字符。g 表示全局匹配。如果没有这个标志,某些操作只会匹配/替换一次。见Regex Tutorial - Turning Modes On and Off for Only Part of The Regular Expression
【讨论】:
/[(A-Z)]/g这个表达式解释$g$标志吗?谢谢
'ABCDEF123'.replace(/[A-Z]/, '')yieldBCDEF123(只匹配一次)。而'ABCDEF123'.replace(/[A-Z]/g, '') 产生123。
$ 字符的使用令人困惑,特别是因为$ 是正则表达式中的特殊字符。只需用反引号括起来:g、i。