如何使用python正则表达式清理字符串

时间:2016-10-17 08:50:12

标签: python regex

我有以下字符串,必须清理

#import re

addr="abcd&^fhj"
problemchars = re.compile(r'[=\+/&<>;\'"\?%#$@\,\. \t\r\n]')
re.search(problemchars,addr)

2 个答案:

答案 0 :(得分:1)

在这种情况下,使用re.sub搜索\W(非alphanum)并替换为空。

import re

addr="abcd&^fhj"
print(re.sub("\W","",addr))

"\W+"也有效,但不确定它会更高效)

答案 1 :(得分:1)

如果你不想使用正则表达式,也可以使用过滤功能

line = "abcd&^fhj"
line = filter(str.isalpha, line)
print line # Change for python3 

输出:

abcdfhj

编辑:对于python 3,您可以像这样更改print语句,因为filter函数返回一个可迭代的。

print(''.join(list(line)))