我正在尝试创建一个Python正则表达式,它允许我删除包含数字的字符串的所有世界。
例如:
in = "ABCD abcd AB55 55CD A55D 5555"
out = "ABCD abcd"
删除号码的正则表达式很简单:
print(re.sub(r'[1-9]','','Paris a55a b55 55c 555 aaa'))
但我不知道如何删除整个单词,而不仅仅是数字。
你能帮我吗?
答案 0 :(得分:16)
你需要正则表达式吗?你可以做点什么
>>> 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'
答案 1 :(得分:7)
这是我的方法:
>>> import re
>>> s = "ABCD abcd AB55 55CD A55D 5555"
>>> re.sub("\S*\d\S*", "", s).strip()
'ABCD abcd'
>>>
答案 2 :(得分:0)
下面的代码片段只删除了与数字混合的单词
string='1i am20 岁,体重在 65-70 公斤之间'
string=re.sub(r"[A-Za-z]+\d+|\d+[A-Za-z]+",'',string).strip()
打印
输出:
年龄和体重在65-70公斤之间的名字