use*_*867 9 python regex alphanumeric
在perl s/[^\w:]//g中将替换所有非字母数字字符除外:
在python我正在使用re.sub(r'\W+', '',mystring)
它删除除_下划线之外的所有非字母数字.有没有办法放异常,我希望不要替换像=和.
以前我正在应用另一种方法,即使用re.sub('[!@#\'\"$()]','',mystring` 替换所有不需要的字符.但是,我不可能预测mystring中所有字符的内容因此我希望删除所有非字符串除少数字母数字字符外的字母数字字符.
谷歌没有提供适当的答案.最接近的搜索是python正则表达式拆分任何\ W +有一些例外,但这也没有帮助我.
nu1*_*73R 10
您可以在否定的字符组中指定您不需要删除的所有内容.
re.sub(r'[^\w'+removelist+']', '',mystring)
Run Code Online (Sandbox Code Playgroud)
测试
>>> import re
>>> removelist = "=."
>>> mystring = "asdf1234=.!@#$"
>>> re.sub(r'[^\w'+removelist+']', '',mystring)
'asdf1234=.'
Run Code Online (Sandbox Code Playgroud)
这里的removelist变量是一个字符串,其中包含您需要从删除中排除的所有字符的列表.
否定的字符类意味着什么
当^移动到字符类中时,它不会充当锚点,因为它会否定字符类.
这就是^在一个角色类里面[^abc]说它否定了角色类的含义.
例如[abc]将匹配a b或c其中的[^abc]不匹配a b或c.除了或之外,还可以表达为任何其他内容a bc
我相信你在perl中描述的方法也可以在python中使用,例如:
re.sub(r'[^\w=]', '',mystring)
Run Code Online (Sandbox Code Playgroud)
会删除除word-characters和=之外的所有内容