假設我有一個字符串'ad>ad>ad>>ad'
,我想在'>'
(而不是'>>'
字符)上對此進行分割。剛拿起的正則表達式,想知道是否有一種方法(特殊字符),爲了將所匹配的表達的特定部分,而不是對整個匹配的表達式分割,例如正則表達式可能是:匹配正則表達式的一部分上的分割字符串(python)
re.split('[^>]>[^>]', 'ad>ad>ad>>ad')
你可以得到它在括號中的字符分裂[^>](>)[^>]
?
假設我有一個字符串'ad>ad>ad>>ad'
,我想在'>'
(而不是'>>'
字符)上對此進行分割。剛拿起的正則表達式,想知道是否有一種方法(特殊字符),爲了將所匹配的表達的特定部分,而不是對整個匹配的表達式分割,例如正則表達式可能是:匹配正則表達式的一部分上的分割字符串(python)
re.split('[^>]>[^>]', 'ad>ad>ad>>ad')
你可以得到它在括號中的字符分裂[^>](>)[^>]
?
您需要使用lookarounds:
re.split(r'(?<!>)>(?!>)', 'ad>ad>ad>>ad')
的(?<!>)>(?!>)
模式的匹配不與一個<
前面(由於負回顧後(?<!>)
)一>
,這是不接着是<
(由於負向預測(?!>)
)。
由於lookarounds不消耗字符(不像否定(而且正面)的字符類,像[^>]
),我們只能在沒有「感人」的周圍符號的象徵<
匹配和拆分。
如果什麼單'>'被封閉用空格,或有隻是右邊或左邊的空間?然後,它不會工作。 –
@WiktorStribiżew:這不在OP的規範中。如果是這種情況,那麼OP應該指定所有這樣的**案例**。 –
我把另一個標記爲正確,因爲它反映了我之後的完全匹配(但沒有消費,這對我來說是新的。) – dpdenton