我需要解密正则表达式的帮助

(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1

这来自showdown.js
(\*\*|__)          match ** or __
(?=\S)             -> look ahead for *one* non-space character? what for?
([^\r]*?\S[*_]*)   -> zero or more non-carriage-returns, why newlines \n allowed?, one non-space, zero or more * or _ characters
\1                 ends with 1st capture: ** or __

我主要不知道第二和第三行

最佳答案

我将在第二部分进行介绍(请记住,我想这是基于JS Markdown解析器的知识):

如果有人想要写两个星号**或两个下划线__而不想要加粗用空格隔开的后面的文本,那么前瞻性断言(?=\S)可能在其中(请问我在那儿做了什么?)。

** This text will not be bold. **
**This text will be bold.**

09-25 15:50