在Python中使用正则表达式删除某个标点符号周围的数字
我正在尝试删除附加到标点符号的数字,但失败:在Python中使用正则表达式删除某个标点符号周围的数字,python,regex,Python,Regex,我正在尝试删除附加到标点符号的数字,但失败: a = 'Car 1234 5678;91012 14567' 我需要得到: a_new = 'Car 1234 14567' 我试过:re.sub('\d{4}\;\d{5}','',ss),它成功了,但是,我不知道我周围有多少个数字,因此我尝试: re.sub('\d\;\d','',ss)失败(输出与输入相同) 我正在学习regex101.com,但仍然不走运。你只需做一个: import re a='Car 1234 5678;91012
a = 'Car 1234 5678;91012 14567'
我需要得到:
a_new = 'Car 1234 14567'
我试过:re.sub('\d{4}\;\d{5}','',ss)
,它成功了,但是,我不知道我周围有多少个数字代码>,因此我尝试:
re.sub('\d\;\d','',ss)
失败(输出与输入相同)
我正在学习regex101.com,但仍然不走运。你只需做一个:
import re
a='Car 1234 5678;91012 14567'
re.sub("[0-9]*;[0-9]*","",a)
输出:
'Car 1234 14567'
'Car 1234 14567'
只需使用+表示更多数字,如下所示
a = 'Car 1234 5678;91012 14567'
re.sub('\d+;\d+ ','',a)
输出:
'Car 1234 14567'
'Car 1234 14567'
那怎么办
import re
a = 'Car 1234 5678;91012 14567'
print(re.sub('\d*;\d* ', '', a))
#'Car 1234 14567'
请注意re模式末尾的尾随空格。这将导致中间只剩下一个空间,而不是两个。< P> >您使用了<代码> \d;d
应该可以工作,但它只会替换分号周围的数字,因为\d表示一位数字
您的解决方案将是\d+\d+
,带有加法符号,查找至少一个数字,但数字的数量应尽可能多
所以
返回
'Car 1234 14567'
明亮的我希望通过以下链接删除尾随空格:
。replace(“”),
谢谢您的建议!