簡體   English   中英

Python正則表達式-不包含字符串的匹配模式

[英]Python Regular Expression - Match pattern that does not contain a string

我對正則表達式非常陌生,並且一直在尋找解決方案,但沒有成功。 給定一個字符串,我想刪除所有以“ abc”開頭,以“ abc”結尾並且中間不包含“ abc”的模式。 如果我做

'abc.*(abc).*abc'

它將匹配任何以“ abc”開頭,以“ abc”結尾,中間包含“ abc”的模式。 我該怎么做相反。 我嘗試

'abc.*^(abc).*abc'

但它行不通。

您可以嘗試以下模式:

^abc((?!abc).)*abc$

(?!abc)負先行 -斷言不可能在字符串中匹配abc

正則表達式可視化

Debuggex演示

您嘗試否定部分模式的語法不正確。

此外,字符類外部的^在字符串的開頭聲明位置。 您需要使用Negative Lookahead斷言,並確保錨定整個模式。

^abc(?:(?!abc).)*abc$

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM