15

我正在尝试制作一个 Python 正则表达式,它允许我删除包含数字的字符串的所有世界。

例如:

in = "ABCD abcd AB55 55CD A55D 5555"
out = "ABCD abcd"

删除号码的正则表达式很简单:

print(re.sub(r'[1-9]','','Paris a55a b55 55c 555 aaa'))

但我不知道如何删除整个单词而不仅仅是数字。

请问你能帮帮我吗?

4

3 回答 3

26

你需要一个正则表达式吗?你可以做类似的事情

>>> words = "ABCD abcd AB55 55CD A55D 5555"
>>> ' '.join(s for s in words.split() if not any(c.isdigit() for c in s))
'ABCD abcd'

如果您真的想使用正则表达式,可以尝试\w*\d\w*

>>> re.sub(r'\w*\d\w*', '', words).strip()
'ABCD abcd'
于 2013-08-06T13:55:46.503 回答
13

这是我的方法:

>>> import re
>>> s = "ABCD abcd AB55 55CD A55D 5555"
>>> re.sub("\S*\d\S*", "", s).strip()
'ABCD abcd'
>>>
于 2013-08-06T14:01:29.863 回答
1

以下代码片段仅删除与数字混合的单词

string='1i am20岁,体重在65-70公斤之间'

string=re.sub(r"[A-Za-z]+\d+|\d+[A-Za-z]+",'',string).strip()

印刷)

输出:

年龄和体重在 65-70 公斤之间

于 2021-04-07T18:56:33.073 回答