如何创建替换字符的Python Regex?

时间:2017-03-09 22:00:26

标签: python regex string python-3.x

我无法找到创建正确的正则表达式的方法,该正则表达式替换为字符串,不同于a-z,A-Z,0-9和|。

到现在为止,我有:

 re.sub(r'[\W_]+', '', s)

这适用于字母数字字符,但我还需要使它适用于管道(“|”)。有谁知道如何制作它?

例如,如果我有:

name&|surna.me|ag,e

我需要它:

name|surname|age

1 个答案:

答案 0 :(得分:5)

  

与a-z,A-Z,0-9和|。

不同的任何东西

您需要negated character class

s = re.sub(r'[^a-zA-Z0-9|]+', '', s)

[启动字符类,^告诉正则表达式引擎它应该匹配除了类中定义的内容以外的任何内容,其余的是你的范围/字符。 ]关闭课程,+使其与所需字符的一次或多次匹配。

请参阅regex demoPython demo

import re
s = 'name&|surna.me|ag,e'
s = re.sub(r'[^a-zA-Z0-9|]+', '', s)
print(s)
# => name|surname|age