Javascript 查找空格填充的星号对

Javascript 查找空格填充的星号对,javascript,regex,markdown,Javascript,Regex,Markdown,我需要找到破坏特定标记解析器的格式不良的标记。我正在搜索一个正则表达式,它会发现**粗体文本**在星号之前或之后错误地填充了空格。例如,**这是错误的**,**这也是**,**这也是**,**这也是正确的**。当然,行通常可以同时包含这两个元素。例如,以下是一些测试用例: This line is **correct** and **properly marked down**. But this line **is not** because ** the second bold is wro

我需要找到破坏特定标记解析器的格式不良的标记。我正在搜索一个正则表达式,它会发现
**粗体文本**
在星号之前或之后错误地填充了空格。例如,
**这是错误的**
**这也是**
**这也是**
**这也是正确的**
。当然,行通常可以同时包含这两个元素。例如,以下是一些测试用例:

This line is **correct** and **properly marked down**.
But this line **is not** because ** the second bold is wrong**.
** Also** this line is wrong **even though this is right**.

我尝试了
(?:\**[^\*]*\s\*\**)
,但这实际上捕获了之间的部分(没有用星号括起来的部分)。有什么建议吗?

希望这会有所帮助,这里我们使用的组合可能是
**空格-单词-空格**
**空格**
**空格-单词**

正则表达式:
(?试试这个:

(?:\*\*\S.+?\S\*\*|(\*\*(?:\s.+?|.+?\s)\*\*))
说明:

// Line must contain: (?:\*\*\S.+?\S\*\*| // Correctly formatted block OR ( // block with BAD formatting - space \*\*(?:\s.+?| // to the left of formatting OR .+?\s)\*\* // to the right of formatting ) ) //行必须包含: (?:\*\*\S.+?\S\*\*\*\124;//格式正确的块或 (//格式错误的块-空格 \*\*(?:\s.+?|//在格式化或 .+?\s)\*\*//在格式右侧 ) )
这是您需要的javascript友好模式:

^[^*]*(?:\*{2}[^][^*]*[^]\*{2}[^*\n]*)*(\*{2}(?:[^*]+[^*]+)\*{2})。*$

解释(非正式用语):


我认为他只需要匹配格式不好的降价。演示表明,它发现所有降价格式都不好,而且都是好的ones@MostafaHussein我已经更新了我的帖子,您可以查看。我认为您在这篇文章中做得不错,所以我将把这篇文章送给您。
(?谢谢,@SahilGulati和@mickmackusa!唯一的皱纹:我在使用Javascript(Atom内部,基于Javascript的文本编辑器)。据我所知,Javascript正则表达式不支持正向查找。我如何调整正则表达式以使用Javascript工作的东西来替换查找?以下是我为解决Javascript查找不足而提出的方法。有谁能提供更好的替代方法吗?
(?:\s^^)(?:\*\*)(?:\s+([^\*])\s+(?:\s+([^\*])(?:\s+([^\*]+))|([^\*]+)\s+(:\*\*)
您使用的是什么语言?实际上使用的是文本编辑器(Atom),但我非常确定底层正则表达式引擎是Javascript。
^[^*]*                                # match anything preceding the first *
(?:\*{2}[^ ][^*]*[^ ]\*{2}[^*\n]*)*   # match zero or more valid sets of **'s, so we don't lose track of what is an opener/closer
(?:\*{2}(?: [^*]+|[^*]+ )\*{2})       # REQUIRE just one invalid ** set
.*$                                   # after one invalid set is found, it doesn't matter what trails it before end of line