簡體   English   中英

Python 正則表達式替換,但前提是正則表達式之前有兩個或更多字符

[英]Python Regex replace but only if two or more characters precede regex expression

我有一個模式: "two_or_more_characters - zero_or_more_characters"我想用"two_or_more_characters"替換它,其中"-"是破折號。

我為它創建了正則表達式:

re.sub(r'-[\w(){}\[\],.?! ]+', '', t)

在某些情況下它可以按預期工作。 例如對於t = "red-fox"我們會得到red 但它不能按需要工作,例如: t = "r-fox" 結果是r但我正在尋找保留r-fox的方法。

如果文本多於一個破折號,那么我們只需要在最后一個破折號之后刪除文本。 例如對於t = "r-fox-dog"結果應該是r-fox

使用 backref - 這就是正則表達式中 () 中的內容,並使用 \1 來“粘貼”它。 我認為這很好用:

re.sub(r'(.{2,})-.*', r'\1', "ss-fox")

暫無
暫無

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

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