/gi 在正则表达式中的含义是啥? [复制]
Posted
技术标签:
【中文标题】/gi 在正则表达式中的含义是啥? [复制]【英文标题】:What's the meaning of /gi in a regex? [duplicate]/gi 在正则表达式中的含义是什么? [复制] 【发布时间】:2015-03-11 01:11:28 【问题描述】:我在我的 javascript 代码中看到这样一行:
var regex = /[^\w\s]/gi;
这个/gi
在正则表达式中是什么意思?
其他部分我可以理解,因为它接受一组单词和空格,但不接受 /gi
。
【问题讨论】:
其实匹配一个单个“非单词”、非空白字符[^A-Za-z0-9_\s]
。
【参考方案1】:
g modifier: global. All matches (don't return on first match)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
在您的情况下,尽管i
无关紧要,因为您没有捕获[a-zA-Z]
。
对于像!@#$
这样的输入,如果没有g
修饰符,正则表达式将返回第一个匹配!
See here。
如果有g
,它将返回整个或任何可以匹配的内容。See here
【讨论】:
【参考方案2】:开头和结尾/
称为分隔符。他们告诉解释器正则表达式的开始和结束位置。结束分隔符之后的任何内容都称为“修饰符”,在本例中为g
和i
。
g
和 i
修饰符具有以下含义:
g
= 全局,匹配字符串中模式的所有实例,而不仅仅是一个
i
= 不区分大小写(例如,/a/i
将匹配字符串 "a"
或 "A"
。
在您提供的上下文中 (/[^\w\s]/gi
),i
毫无意义,因为正则表达式没有特定于大小写的部分。
【讨论】:
以上是关于/gi 在正则表达式中的含义是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章