Javascript 可选的RegExp标识在ES6中不起作用
如下所示为JavaScript ES6 RegExp: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、
?
匹配可选字符
匹配除行终止符以外的任何单个字符
\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+)/
正则表达式是。请注意,您还在
前后匹配空格*
。只需删除这些空白就可以了。注意,您还需要在*
之前和之后匹配空白。只需删除这些空白