我想删除所有特殊字符,例如'|','。'或字符串中的'$'。
这是我的代码:
string= '#$#&^&#$@||||123515'
re.sub(r'[^a-zA-Z0-9]', '', string)
print(string)
输出:
#$#&^&#$@||||123515
我知道这个正则表达式意味着删除除数字,a-z和A-Z之外的所有内容。
但它无法删除所有特殊字符。
有人可以告诉我为什么吗?谢谢! :)
答案 0 :(得分:3)
这应该有所帮助:
>>> import re
>>> string= '#$#&^&#$@||||123515'
>>> string = re.sub('[\W\_]','',string)
>>> string
'123515'
答案 1 :(得分:1)
您的代码问题:您必须将 re
的响应存储在 string
变量中,如 string = re.sub( '[^ A-Za-z0-9] +','',字符串)
。然后执行 print(string)
。
替代解决方案:即使不使用正则表达式,您也可以实现此目的:< / p>&#XA;&#XA;
<代码>&GT;&GT;&GT; string ='#$#&amp; ^&amp;#$ @ |||| 123515'&#xA;&gt;&gt;&gt; ''。join(e表示e.isalnum()中的字符串e)&#xA; 123515&#xA;&#xA;