我正在嘗試制作一個匹配字串中所有主題中斷的正則運算式,以便在 JavaScriptString.split函式中使用。
主題休息可以是:
- 連字符:
--- - 星號:
*** - 下劃線:
___
連字符、星號或下劃線之間可以有空格,但不能混合匹配,例如 this is not valid --*。
完整規格:https ://spec.commonmark.org/0.30/#thematic-breaks
這是我嘗試過的:/[-*_]{3,}/g但這與中間有空格的不匹配,如果我在其中添加空格,它將匹配不受歡迎的東西-- 。我也想過首先去除空白,但我想將它全部放入 RegEx 中。
這可能嗎?如何?
uj5u.com熱心網友回復:
您可以使用此正則運算式:
/^[ ]{0,3}([-*_])\s*\1\s*\1 \s*$/gm
說明:
^- 匹配行首
[ ]{0,3}- 匹配可選最多 3 個空格
([-*_])- 匹配其中一個-,*或者_把它放在一個組中
\s*\1\s*\1 \s*- 匹配可選的空格和來自第一組的字符兩次
$- 匹配行尾
編輯(來自評論):
/^[ ]{0,3}([-*_])\s*(?:\1\s*){2,}$/gm
它現在支持重復模式,只要使用的字符相同。
本組:
(?:\1\s*)重復 2 次或更多次。
匹配示例:
***
- - -
__ _
** * ** * ** * **
不匹配的例子:
*-_
abc
我應該補充一點,\s盡管規范說“空格或制表符”。由于這必須逐行決議,\s因此應該是安全的。
您可以在此處測驗正則運算式。
uj5u.com熱心網友回復:
要捕獲空白,該怎么辦
/[-*_]{3,}\s*/g
或者
/[-*_][-*_\s]{2,}/g
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/506212.html
標籤:javascript 正则表达式 降价
