[英]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.