Python:从字符串中删除除字母和空格之外的所有内容

时间:2014-07-06 13:11:54

标签: python regex

我有这个代码,但坚持使用正则表达式:

text = "Itsa lovely day!!! Shabba"
regex = ur''# put it there
result = re.sub(regex, u'', text, flags=re.UNICODE)
assert result != "Itsa lovely day Shabba"

我试过这样的事情:

ur'[\W^[\s]]+'

及其变体。

有人可以提供正确的正则表达式吗?

2 个答案:

答案 0 :(得分:4)

您也可以在没有正则表达式的情况下执行此操作:

text = "Itsa lovely day!!! Shabba"
result = "".join(x for x in text if x.isalpha() or x.isspace())

答案 1 :(得分:2)

你可以这样做:

import re

text = "Itsa lovely day!!! Shabba"
result = re.sub(r'[^a-zA-Z\s]', u'', text, flags=re.UNICODE)
print result

如果您还想允许数字,请执行以下操作:

result = re.sub(r'[^a-zA-Z\d\s]', u'', text, flags=re.UNICODE)