我想将\W
破折号异常(exception)的所有-
而不是字母替换为空格,即:
black-white
将给出black-white
black#white
将给出black white
我对正则表达式非常了解,但我不知道如何处理。
考虑到我要使用Unicode,因此
[a-zA-Z]
并非仅英语中的\w
。考虑到我更喜欢Python re语法,但可以阅读其他建议。
最佳答案
使用否定的字符类:( \W
等于[^\w]
; [^-\w]
=> \W
,-
除外)
>>> re.sub(r'[^-\w]', ' ', 'black-white')
'black-white'
>>> re.sub(r'[^-\w]', ' ', 'black#white')
'black white'
如果您使用
regex
软件包,则可以使用nested sets, set operations:>>> import regex
>>> print regex.sub(r'(?V1)[\W--[-]]', ' ', 'black-white')
black-white
>>> print regex.sub(r'(?V1)[\W--[-]]', ' ', 'black#white')
black white
关于python - 如何用正则表达式替换 '-'(破折号)以外的所有\WITH(九个字母)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27588522/