如何匹配正则表达式中第一个被捕获的字符以外的每个字符?

时间:2018-11-17 04:04:05

标签: javascript regex regex-lookarounds regex-group

我正在尝试匹配一个捕获松弛的正则表达式。我正在尝试匹配嵌套的markdown,例如*`这里的代码已合并*。我创建了此正则表达式,它使用了否定前瞻功能,但如果用户在此后键入其他内容然后键入不需要的字符,则否定前瞻功能仅工作一次:

(\*|_|`|```)(?!\1+)(\w+?)\1

因此此正则表达式将以任何字符* | _ |`|```开头并将其保存在捕获组中,然后它应该与第一组中捕获的字符匹配,直到最后一个字符,但可以匹配其中的任何其他字符: 没关系:

*`asdfsdf`*

这不行:

*`asdf*asdf`*
*`asdf`asdf`*

所以我想要的是这样的:

(\*|_|`|```)[^\1]\1

,它匹配除第一个捕获组中捕获的字符以外的所有字符。这显然不起作用,因为set []不接受捕获组并将其解释为其他内容。 我希望这足够清楚。

0 个答案:

没有答案