我的应用程序我正在使用正则表达式进行模式匹配。
原始图案:
/(\w+\.){2,}/ig
以上模式添加到一个数组中。由于此模式在2之后有逗号(,),因此在某些环境中创建问题。
正如我们在正则表达式中所知的那样:
{n} - matches n times
{n, m} - matches at least n times, but not more than m times
所以我在2之后删除了逗号,因为在上面的模式中,逗号后没有值。
删除逗号后模式:
/(\w+\.){2}/ig
根据上述变化,我已经解决了我之前面临的环境问题。
所以在这里,我只想知道在匹配之后,在2之后删除逗号会产生任何问题,对于上面给出的情况。
答案 0 :(得分:1)
{2}
表示匹配,如果它恰好出现2次,{2,}
表示2次或以上。根据用途,这可能也可能无关紧要。
例如,如果要验证字符串是否包含2个或更多\w+\.
,则逗号无关紧要。但是,如果您想用其他内容替换那些2个或更多\w+\.
,则逗号会影响结果。
'foo.bar.baz.'.replace(/(\w+\.){2}/ig, '~') == '~baz.'
'foo.bar.baz.'.replace(/(\w+\.){2,}/ig, '~') == '~'
答案 1 :(得分:1)
{2,}表示两个或更多。没有最大限制。 这样,{0,}与*相同,{1,}与+
相同总结:
{n} match n times
{n,m} match at least n times, but not more than m times
{n,} match at least n times
有关详细信息,请参阅this