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

Javascript 可选的RegExp标识在ES6中不起作用,javascript,regex,ecmascript-6,Javascript,Regex,Ecmascript 6,如下所示为JavaScript ES6 RegExp: ?匹配可选字符 匹配除行终止符以外的任何单个字符 \w匹配任何字母数字字符 *与前面的项匹配0次或更多次 我正在尝试测试以下表达式: "show .* report of (?<day>\w+)" “显示*(\w+)的报告” 以上内容与:显示星期一的报告 但失败,与星期一的show报告不匹配 我假设*表示零/空或更多字符,但看起来它不适用于无字符!我也尝试使用?,但失败了 请提供任何解释和帮助。show.*报告匹配show、

如下所示为JavaScript ES6 RegExp:

匹配
可选
字符
匹配除行终止符以外的任何单个字符
\w
匹配任何字母数字字符
*
与前面的项匹配0次或更多次

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

"show .* report of (?<day>\w+)"
“显示*(\w+)的报告”
以上内容与:
显示星期一的报告
但失败,与星期一的
show报告不匹配

我假设
*
表示零/空或更多字符,但看起来它不适用于无字符!我也尝试使用
,但失败了


请提供任何解释和帮助。

show.*报告
匹配show、一个空格、零个或多个字符和另一个空格<代码>显示星期一的报告
两个单词之间只有一个空格。更好的解决方案是这个正则表达式:

/show (?:.+ )?report of (?<day>\w+)/
/show(?:.+)?报告(?\w+)/
或者,除了它与“显示星期一的误传”匹配外:

/show.*报告(?\w+)/

正则表达式是。

show.*report
匹配show、一个空格、零个或多个字符和另一个空格<代码>显示星期一的报告
两个单词之间只有一个空格。更好的解决方案是这个正则表达式:

/show (?:.+ )?report of (?<day>\w+)/
/show(?:.+)?报告(?\w+)/
或者,除了它与“显示星期一的误传”匹配外:

/show.*报告(?\w+)/

正则表达式是。

请注意,您还在
前后匹配空格*
。只需删除这些空白就可以了。注意,您还需要在
*
之前和之后匹配空白。只需删除这些空白