首页 > 解决方案 > 如何修改此正则表达式使其不匹配 * * *

问题描述

(?<!\*)\*([^*]+?)\*(?!\*)/g

这基本上是一个匹配 Markdown 斜体的正则表达式。它将匹配以下情况:

This *is* Markdown.
This *is Markdown.*
*This* is *Markdown.*
*This is Markdown.*

注意:负面环顾四周是为了避免匹配这种情况This is **Markdown.**

它工作......几乎。它也是 match * * *,我将其用作分节符。像这样:

* * *

This *is* Markdown.

* * *

如何更改我的正则表达式使其与这些分节符不匹配?我真的被困住了。

正则表达式: https ://regexr.com/4tv5n

标签: javascriptregex

解决方案


根据文档,有更多有效的水平规则组合。

我认为这个更简单,更好地抓住了规则的本质:

\*(?!\s*\*)([^*\n]+)\*

它也更快,因为它需要89 步而不是204 步


推荐阅读