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


问题内容

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

s = "12 word word2"

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

所以我希望结果是

s = "word word2"

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

re.sub('[\ 0-9\ ]+', ' ', line)

有人可以告诉我什么地方出了问题吗?另外,有没有比正则表达式更省时的方法?

谢谢!


问题答案:

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

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

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