我需要帮助破译正则表达式
(\*\*|__)(?=\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 __
我主要是没有获得第二和第二第3行
答案 0 :(得分:2)
我会对第二部分进行尝试(请记住,基于知道这是一个JS Markdown解析器):
前瞻断言(?=\S)
可能存在,以防万一有人想要写两个星号**或两个下划线__而不想加粗它后面的文本被空格分隔(看我在那里做了什么?)。
** This text will not be bold. **
**This text will be bold.**
**此文字不会是粗体。 **
此文字将为粗体。