如何删除python中只包含数字的单词?

sil*_*dev 3 python regex string

我在Python中有一些由数字和字母组成的文本.像这样的东西:

s = "12 word word2"
Run Code Online (Sandbox Code Playgroud)

从字符串s,我想删除所有包含数字的单词

所以我想要结果

s = "word word2"
Run Code Online (Sandbox Code Playgroud)

这是我的正则表达式,但它适用于字母表,即它用空格替换每个字母表.

re.sub('[\ 0-9\ ]+', ' ', line)
Run Code Online (Sandbox Code Playgroud)

有人可以帮我告诉我什么是错的吗?此外,还有比正则表达式更有效的方法吗?

谢谢!

Jon*_*nts 6

在这里使用正则表达式可能有点过分,这取决于您是否需要保留空格:

s = "12 word word2"
s2 = ' '.join(word for word in s.split() if not word.isdigit())
# 'word word2'
Run Code Online (Sandbox Code Playgroud)


anu*_*ava 5

您可以使用此正则表达式:

>>> s = "12 word word2"
>>> print re.sub(r'\b[0-9]+\b\s*', '', s)
word word2
Run Code Online (Sandbox Code Playgroud)

\b用于单词边界,\s*并将在您的数字单词后删除0或多个空格。