【发布时间】:2013-08-27 15:08:40
【问题描述】:
我正在用一组标签和替换来解析一些文本。例如,要制作文本**surrounded by double astersks** bold,我使用/\*\*([\s\S]+?)\*\*/gm 作为模式,"<b>$1</b>" 作为替换。但是我还想提供原始文本,就像我在这个问题中所做的那样。所以我需要一个表达式,它“匹配任何字符,包括被双星号包围的空格和换行符,但不被反引号包围,在反引号和双星号之间有(可选)字符/空格/换行符”
示例。
输入字符串:"Lorem ``ipsum **dolor** sit`` amet, **consectetur** adipisicing elit"
结果:“Lorem ipsum **dolor** sat amet, consectetur adipisicing elit”
我尝试了不匹配的组和前瞻,但无济于事。我知道这可以通过例如用 html 实体替换字符或仅使用一些 Markdown 解析器来完成,但只是为了感兴趣,如何通过纯正则表达式魔法来完成?
【问题讨论】:
-
类似这样的:
"Lorem ``ipsum **dolor** sit`` amet, **consectetur** adipisicing elit"。Dolor不应变为粗体,因为ipsum **dolor** sit被反引号包围(我在这里使用双反引号只是为了逃避它们),而 consectetur 匹配表达式并变为黑色。
标签: javascript regex markdown bbcode