假設我有以下文本:
Yes: [x]
Yes: [ x]
Yes: [x ]
Yes: [ x ]
No: [
No: ]
我對捕獲角括號[和]含有x與水平空間上的任一側上的可變的量x。我掙扎的一點是,兩個尖括號都必須被捕獲到具有相同ID(即$1) 的組中。
我開始使用以下組合積極的前瞻和后視斷言regex:
\[(?=\h*x)|(?<=x)\h*\K\]
產生以下匹配(即,見
然后,我嘗試在整個運算式周圍放置一個捕獲組,但匹配擴展到正后(?<=x)\h*視后的水平空間,如下所示(即,另請參閱
我正在使用Oniguruma 正則運算式和PCRE味道。您是否有任何想法以及如何做到這一點?
uj5u.com熱心網友回復:
您可以使用分支重置組:
(?|(\[)(?=\h*x\h*])|(?<=\[)\h*x\h*(]))
(?|分支復位組(\[)(?=\h*x\h*])[在第 1 組中捕獲,x在右側的可選水平空白字符之間斷言,然后是]|或者(?<=\[)\h*x\h*(])[向左斷言,然后x在可選的水平空白和]組 2 中的捕獲之間進行匹配
)關閉分支重置組
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/385031.html
