
(圖片)如何使用正則運算式找到綠色高亮部分?
regex101 https://regex101.com/r/knSRpd/3
我認為問題出在:我是否使用了前瞻來查找不以 Tab 開頭的下一行。我試過的: ^(?!\t)(^(FULL|SMALL))?(\S.\n$)?(\S.*?)(?=^(?!\t)\w ? |$(?!\n))
我試圖在 \n (\S.\n$) 處找到行尾介于兩者之間的字串句子?
uj5u.com熱心網友回復:
如果要查找 FULL 或 SMALL 之后不以制表符開頭的所有行:
^(FULL|SMALL)\b(.*(?:\n(?!\t).*)*)
^字串的開始(FULL|SMALL)\b在第 1 組中捕獲 FULL 或 SMALL(捕獲組 2.*匹配該行的其余部分(?:\n(?!\t).*)*如果下一行不以制表符開頭,則可選擇重復匹配下一行
)關閉非捕獲組
在替換中,使用 group$1和 group$2
正則運算式演示
如果您只想匹配以非空白字符開頭的行以防止匹配空行
^(FULL|SMALL)\b(.*(\n\S.*)*)
正則運算式演示
uj5u.com熱心網友回復:
您可以使用
/^(FULL|SMALL)\b(.*(?:\n(?!\t|FULL\b|SMALL\b).*)*)/gm
/^(FULL|SMALL)\b(.*(?:\n(?!\t).*)*)/gm
替換將需要調整(因為現在模式中只有兩個捕獲組)以
<div class="PANEL $1">\n<div class="action">$2</div></div>\n\n
請參閱正則運算式演示。詳情:
^- 字串的開始(FULL|SMALL)\b-FULL或SMALL整個詞(.*(?:\n(?!\t|FULL\b|SMALL\b).*)*)- 第 2 組:.*- 該行的其余部分(?:\n(?!\t|FULL\b|SMALL\b).*)*- 零個或多個不以 TAB 開頭FULL或SMALL作為整個單詞的行。如果你使用(?!\t),為檢查FULL而SMALL不會被觸發,即使這些話行啟動時,它會被消耗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316070.html
標籤:正则表达式
