可选的RegExp标识在ES6中不起作用

时间:2018-07-10 19:47:32

标签: javascript regex ecmascript-6

根据this,以下是JavaScript ES6 RegExp:

?optional字符匹配
.匹配除行终止符之外的任何单个字符
\w匹配任何字母数字字符
*与前面的项目匹配0次或更多次

我正在尝试this来测试以下表达式:

"show .* report of (?<day>\w+)"

以上与以下各项匹配:show me the report of Monday 但失败,并且与show report of Monday

不匹配

我假设.*的含义是零/空或更多字符,但看起来它没有字符就不能工作!我也尝试使用?,但失败了。

任何解释和帮助。

1 个答案:

答案 0 :(得分:3)

show .* report匹配显示,一个空格,零个或多个字符以及另一个空格。 show report of Monday在两个单词之间有一个空格。更好的解决方案是此正则表达式:

/show (?:.+ )?report of (?<day>\w+)/

或者这个,除了它也匹配“显示星期一的错误报告”:

/show .*report of (?<day>\w+)/

正则表达式为explained in this demo