【发布时间】:2022-08-23 02:50:41
【问题描述】:
我正在尝试使用正则表达式解析降价内容。抢大胆的和斜体来自输入的项目,我目前正在使用正则表达式:
/(\\*\\*)(?<bold>[^**]+)(\\*\\*)|(?<normal>[^`*[~]+)|\\*(?<italic>[^*]+)\\*/g
正则表达式 101 链接:https://regex101.com/r/2zOMid/1
这个正则表达式的问题是:
- 如果在粗体文本内容之间有一个
*,则匹配被中断 - 如果有像
*******这样的长文本,则匹配中断
#####:尝试使用:
我尝试删除 bold 组中的 [^**] 部分,但是这使粗体匹配与找到最后一个 ** 出现并包括所有 `**`` 字符
我想拥有的:
- 准确的粗体
-
*允许在粗体中 - 准确的斜体
语言:Javascript
假设:
粗体字包裹在** 内
斜体文字包裹在 * 内
-
不要在此处使用单个正则表达式,因为匹配项是重叠的。首先使用粗体正则表达式,然后使用斜体。
-
是的,我正在尝试做同样的事情。因为上述正则表达式中的粗体匹配应该允许在其中包含单个
*字符。如果我这样做,粗体匹配就会搞砸。我可以用正则表达式正确地做到这一点吗? -
根据降价规则,不应该直接显示一个星号
*转义它吗?***\\****的确切原因? -
对我来说,
*****&**\\***表示普通文本。如果我们只想要一个粗体的星号,那么使用原始 HTML 可能会更好(markdown 支持)。但如果输入类似于**ab*cd**,那么ab*cd应该是匹配的。
标签: javascript regex markdown bold italics