JavaScript正则表达式match()返回match的部分(子集)

马可·普林斯

我正在使用此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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript match(),正则表达式

来自分类Dev

.match()对于密码的正则表达式返回null

来自分类Dev

JavaScript使用带.match正则表达式的变量

来自分类Dev

正则表达式的.match()问题

来自分类Dev

Preg Match正则表达式

来自分类Dev

正则表达式获取拆分电子邮件部分preg_match_all

来自分类Dev

PHP的preg_match_all简单的正则表达式返回空值

来自分类Dev

preg_match中的正则表达式,返回3个匹配项

来自分类Dev

电话正则表达式和JQuery中的Match

来自分类Dev

preg_match正确的正则表达式

来自分类Dev

preg_match-创建数组的正则表达式

来自分类Dev

Python正则表达式-Match and Start()

来自分类Dev

PHP-preg_match正则表达式

来自分类Dev

正则表达式PHP preg_match_all

来自分类Dev

String.match正则表达式中的变量

来自分类Dev

preg_match的正则表达式

来自分类Dev

$ match下的正则表达式不会产生结果

来自分类Dev

正则表达式和preg_match

来自分类Dev

PHP preg_match和正则表达式

来自分类Dev

正则表达式php match_all

来自分类Dev

咕match匹配正则表达式

来自分类Dev

PHP preg_match_all正则表达式

来自分类Dev

Python正则表达式-Match and Start()

来自分类Dev

电话正则表达式和JQuery中的Match

来自分类Dev

.match() 和正则表达式的意外输出

来自分类Dev

如何只返回正则表达式的特定部分?

来自分类Dev

如何动态创建正则表达式以在.match Javascript中使用?

来自分类Dev

正则表达式使用match()提取javascript中的字符串数组

来自分类Dev

如何动态创建要在.match Javascript中使用的正则表达式?