我正在使用此JavaScript正则表达式:
var e = new RegExp('(, )?wortel')
因此,我的目标是匹配"wortel"
OR ", wortel"
,从而将“,”封装在方括号中,并使用问号表示一个或零次出现。
但是,当我执行以下代码行时:
'pus, wortel'.match(e)
我得到以下输出:
Array [ ", wortel", ", " ]
为什么第二个result(", "
)包含在比赛中?我的正则表达式不需要“ wortel”一词吗?以及如何达到所需的正则表达式规格?
PS我已经习惯了Ruby正则表达式,所以解释差异可能会有所帮助
这是由于正则表达式中的可选捕获组:
var e = new RegExp('(, )?wortel');
您可以", "
通过使用具有以下(?:...)
语法的非捕获组来避免捕获:
var e = new RegExp('(?:, )?wortel');
这(?:, )?
使其成为非捕获组。
现在结果将只是一个元素:
Array [ ", wortel" ]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句