javascript - XRegExp: "Unmatched ' )'"然而一切似乎都是平衡的

标签 javascript regex pcre xregexp

<分区>

我写了下面一行代码:

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)] -->

更新:使用 Regex101我已经设法让正则表达式通过:我已经将正则表达式更新为 '<!-- @\[(?<component>[\w+]+)\(*(?<classes>[\w+]+)*\)*\] -->'但是我仍然遇到同样的错误。

最佳答案

我已经更新了我的答案以满足所提供的新信息。

鉴于您 try catch 原始正则表达式的示例将不匹配。

以下将匹配 [( 到组件之间的任何字符以及 () 到类之间的任何字符。

\w 匹配单词、数字或下划线。 这会使它丢失你的 [-,] 字符

希望这对您有所帮助。

<!-- @\[(?<component>[\w]*)\((?<classes>.*?)\)*\] -->

@[组件(类 - 警告,高级别)]

关于javascript - XRegExp: "Unmatched ' )'"然而一切似乎都是平衡的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53171288/

相关文章:

Javascript:连接多个包含路径的数组并以特殊方式转换为对象

javascript - Mongodb find 方法不返回任何内容

javascript正则表达式非捕获比根本没有括号更快

php - 使用 preg_replace 将单词的每个首字母大写

php - 如何存储音频文件的缓存值?

javascript - 私信私信欢迎新用户加入服务器

JavaScript - 正则表达式与自定义检查

java - 如何更改以下模式以找到所有可能的匹配项?

regex - 使用扩展正则表达式和捕获组的 sed

PHP 正则表达式 : How to match\r and\n without using [\r\n]?