/gi 在正则表达式中的含义是什么?
What's the meaning of /gi in a regex?
我在 JavaScript 代码中看到这样一行:
var regex = /[^\w\s]/gi;
正则表达式中 /gi
的含义是什么?
其他部分我能理解,因为它接受一组单词和空格,但不接受/gi
。
开头和结尾/
称为定界符。它们告诉解释器正则表达式的开始和结束位置。任何 在 结束定界符之后被称为 "modifier," 在这种情况下 g
和 i
.
g
和 i
修饰符具有以下含义:
g
= 全局,匹配字符串中模式的所有实例,而不仅仅是一个
i
= 不区分大小写(因此,例如,/a/i
将匹配字符串 "a"
或 "A"
.
在您提供的上下文中 (/[^\w\s]/gi
),i
没有意义,因为正则表达式中没有特定于大小写的部分。
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
修饰符,正则表达式将 return 首先匹配 !
See here.
如果 g
存在,它将 return 整个或任何它可以匹配的东西。See here
我在 JavaScript 代码中看到这样一行:
var regex = /[^\w\s]/gi;
正则表达式中 /gi
的含义是什么?
其他部分我能理解,因为它接受一组单词和空格,但不接受/gi
。
开头和结尾/
称为定界符。它们告诉解释器正则表达式的开始和结束位置。任何 在 结束定界符之后被称为 "modifier," 在这种情况下 g
和 i
.
g
和 i
修饰符具有以下含义:
g
= 全局,匹配字符串中模式的所有实例,而不仅仅是一个i
= 不区分大小写(因此,例如,/a/i
将匹配字符串"a"
或"A"
.
在您提供的上下文中 (/[^\w\s]/gi
),i
没有意义,因为正则表达式中没有特定于大小写的部分。
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
修饰符,正则表达式将 return 首先匹配 !
See here.
如果 g
存在,它将 return 整个或任何它可以匹配的东西。See here