繁体   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