![](/img/trans.png)
[英]Replace all Non-Alphanumeric Characters except one particular pattern using RegEx in Python
[英]Replace non alphanumeric characters except some exceptions python
在perl s/[^\\w:]//g
将替换所有非字母数字字符除外:
在python我使用re.sub(r'\\W+', '',mystring)
确实删除除_下划线以外的所有非字母数字。 有没有办法放异常,我希望不要替换像=和。
以前我正在应用另一种方法,即使用re.sub('[!@#\\'\\"
替换所有不需要的字符re.sub('[!@#\\'\\"
$()]','',mystring`)但是,我不可能预测到什么所有字符都可能出现在mystring中,因此除了少数字符之外,我希望删除所有非字母数字字符。
谷歌没有提供适当的答案。 最接近的搜索是python正则表达式拆分任何\\ W +有一些例外,但这也没有帮助我。
您可以在否定的字符组中指定您不需要删除的所有内容。
re.sub(r'[^\w'+removelist+']', '',mystring)
测试
>>> import re
>>> removelist = "=."
>>> mystring = "asdf1234=.!@#$"
>>> re.sub(r'[^\w'+removelist+']', '',mystring)
'asdf1234=.'
这里的removelist
变量是一个字符串,其中包含您需要从删除中排除的所有字符的列表。
否定的字符类意味着什么
当^
被移动到字符类中时,它不会充当锚点,因为它会否定字符类。
那就是^
在一个字符类里面说像[^abc]
它否定了字符类的含义。
例如[abc]
将匹配a
b
或c
其中如[^abc]
将不匹配a
b
或c
。 这也可以表述为以外的任何a
b
或c
re.sub(r'[^a-zA-Z0-9=]', '',mystring)
您可以添加任何你想要的喜欢_
无论你想保存。
我相信你在perl中描述的方法也可以在python中使用,例如:
re.sub(r'[^\w=]', '',mystring)
会删除除word-characters和=之外的所有内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.