[英]Regex for Markdown Emphasis with asterisks * and underscores _
但升級。 發布到答案中的完美正則表達式僅涵蓋帶有下划線的情況,但 Markdown 也支持星號。
TLTR:我需要一個正則表達式來匹配 markdown 強調與_em_
和*em*
_
| *
)之前和之后都沒有空格_
| *
)*foo_
這樣的不同起點我解決問題的嘗試是
\b[_\*](?![_\*\s])(.*?[^_\*\s])[_\*]\b
但不能完美地涵蓋*
這是一個帶有一些測試的示例。 應該只匹配_em_
和*em*
情況。
您可以使用
/([_*])(?<!(?:\1|\w).)(?![_*\s])(.*?[^_*\s])(?=\1)([_*])(?!\w|\3)/g
請參閱正則表達式演示。 詳情:
([_*])
- 第 1 組: _
或*
(?<?(:.\1|\w).)
- 否定的后視:沒有與第 1 組中相同的字符或任何單詞 char,然后是緊鄰當前位置左側的任何字符(?![_*\s])
- 如果當前位置右側有_
、 *
或空格,則匹配失敗(.*?[^_*\s])
- 第 2 組:除換行符之外的任何零個或多個字符,盡可能少,然后是除_
、 *
或空格之外的字符(?=\1)
- 正向前瞻,需要與組 1 中相同的值立即出現在當前位置的右側([_*])
- 第 3 組:一個_
或*
(?!\w|\3)
- 不緊跟單詞 char 或與第 3 組中相同的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.