我编写了以下代码:
XRegExp.exec(data,
XRegExp('<!-- @\[(?<component>[\w+])[\(*(?<classes>[\w+])*\)]*\] -->', 'g'))如您所见,它使用的是XRegExp库,因此我可以使用命名组,其他PCRE特性。
我得到了错误:
syntaxError: Invalid regular expression: /<!-- @[(?<component>[w+])[(*(?<classes>[w+])*)]*] -->/: Unmatched ')'
然而,我不明白无与伦比的)在哪里。据我所知,所有需要转义的括号都应该是方括号,而不应该转义的括号则不应该。
下面是我要匹配的字符串:
<!-- @[NoteBlock(warning)] -->
这些也应符合:
<!-- @[NoteBlock(warning, high-level)] -->
<!-- @[NoteBlock] -->
这不应与以下情况相匹配:
<!-- @[(warning, high-level)] -->
UDPATE:使用Regex101,我成功地通过了regex :我已经将regex更新为'<!-- @\[(?<component>[\w+]+)\(*(?<classes>[\w+]+)*\)*\] -->',但是仍然会收到相同的错误。
发布于 2018-11-06 11:55:41
我已经更新了我的答复,以满足提供的新信息。
给出您试图捕获的示例,原始正则表达式将不匹配。
下面将匹配[(到组件)和类()之间的任何字符。
W匹配一个单词、数字或下划线。这会让它丢失你的-,字符
希望这能帮上忙。
<!-- @\[(?<component>[\w]*)\((?<classes>.*?)\)*\] -->@Component(类-警告,高级别)
https://stackoverflow.com/questions/53171288
复制相似问题