我无法找到创建正确的正则表达式的方法,该正则表达式替换为字符串,不同于a-z,A-Z,0-9和|。
到现在为止,我有:
re.sub(r'[\W_]+', '', s)
这适用于字母数字字符,但我还需要使它适用于管道(“|”)。有谁知道如何制作它?
例如,如果我有:
name&|surna.me|ag,e
我需要它:
name|surname|age
答案 0 :(得分:5)
与a-z,A-Z,0-9和|。
不同的任何东西
s = re.sub(r'[^a-zA-Z0-9|]+', '', s)
[
启动字符类,^
告诉正则表达式引擎它应该匹配除了类中定义的内容以外的任何内容,其余的是你的范围/字符。 ]
关闭课程,+
使其与所需字符的一次或多次匹配。
import re
s = 'name&|surna.me|ag,e'
s = re.sub(r'[^a-zA-Z0-9|]+', '', s)
print(s)
# => name|surname|age