如何制作一个python RegEx,除了:\d \w \s
我试过这样的事情:
import re
re.sub(r'\W*\D*\S*', '', 'this is my<\n test <+-,1345.;>')
但是这给了我一个空字符串。我想得到:this is my test ,1234.
。我还想保留,
和.
答案 0 :(得分:5)
使用倒置字符类:
re.sub(r'[^., \t\w]*', '', 'this is my<\n test <+-,1345.;>')
演示:
>>> re.sub(r'[^., \t\w]*', '', 'this is my<\n test <+-,1345.;>')
'this is my test ,1345.'
\W
,\S
和\D
类太宽。例如\D
匹配\w
匹配的大部分内容,删除\D
中的任何内容都会删除太多内容。任何不是数字的东西都要删除,但你想保留字母和点数。
我将\s
替换为文字空格和标签,因为您要删除换行符(也是空格),我添加了.
和,
以便保留这些换行符。 \d
也不需要\w
,\d
是{{1}}的超集。