XRegExp:"Unmatched ')'" 然而一切似乎都是平衡的
XRegExp: "Unmatched ')'" Yet everything appears to be balanced
我写了下面一行代码:
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 我已经设法让正则表达式通过:我已经将正则表达式更新为 '<!-- @\[(?<component>[\w+]+)\(*(?<classes>[\w+]+)*\)*\] -->'
但是我仍然遇到同样的错误。
我已经更新了我的答案以满足所提供的新信息。
鉴于您尝试捕获原始正则表达式的示例不匹配。
以下将匹配 [( 到组件之间的任何字符以及 () 到 类 之间的任何字符。
\w 匹配单词、数字或下划线。
这会使它缺少您的 [-,] 字符
希望这对您有所帮助。
<!-- @\[(?<component>[\w]*)\((?<classes>.*?)\)*\] -->
@[组件(类 - 警告,高级别)]
我写了下面一行代码:
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 我已经设法让正则表达式通过:我已经将正则表达式更新为 '<!-- @\[(?<component>[\w+]+)\(*(?<classes>[\w+]+)*\)*\] -->'
但是我仍然遇到同样的错误。
我已经更新了我的答案以满足所提供的新信息。
鉴于您尝试捕获原始正则表达式的示例不匹配。
以下将匹配 [( 到组件之间的任何字符以及 () 到 类 之间的任何字符。
\w 匹配单词、数字或下划线。 这会使它缺少您的 [-,] 字符
希望这对您有所帮助。
<!-- @\[(?<component>[\w]*)\((?<classes>.*?)\)*\] -->
@[组件(类 - 警告,高级别)]