Python 3.x python3正则表达式不限制仅替换到第一个计数

Python 3.x python3正则表达式不限制仅替换到第一个计数,python-3.x,regex,Python 3.x,Regex,朋友们:(修订问题) 提前感谢您的时间和关注 import re txt = "ear_name:zebra-wow-ear:-:4" x = re.sub(".*:", "", txt,1) print(x) 我期待着的输出 斑马哇耳朵:-:4 移除 耳朵名称: 从 耳朵名称:斑马哇耳朵:-:4 但是我得到的是 四, 我做错了什么 请帮忙 -N[对更新问题的回答] 您可以尝试以下方法: x = re.sub(r".*?:

朋友们:(修订问题)

提前感谢您的时间和关注

import re

txt = "ear_name:zebra-wow-ear:-:4"
x = re.sub(".*:", "", txt,1)
print(x)
期待着的输出

斑马哇耳朵:-:4

移除

耳朵名称:

耳朵名称:斑马哇耳朵:-:4

但是我得到的是

四,

我做错了什么

请帮忙


-N

[对更新问题的回答]

您可以尝试以下方法:

x = re.sub(r".*?:", "", txt, 1)
这将进行非贪婪模式匹配

或者,尝试:

x = re.sub(r"[^:]*:", "", txt, 1)
两者都将替换直到(包括)第一个
冒号(
)的所有内容


请注意,第四个参数在这两种情况下都是多余的,因此您也可以删除它,它应该可以工作。

这是否回答了您的问题?您可以使用
x=re.sub(r“^[^::*:”,“”,txt)