Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用正则表达式删除某个标点符号周围的数字_Python_Regex - Fatal编程技术网

在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(“”),
谢谢您的建议!