正则表达式,使字符串不包含间断/特殊字符,例如* $< ,> ? ! %[] | \?

时间:2013-07-05 10:02:59

标签: python regex

如何创建一个正则表达式,使字符串不包含间断/特殊字符,例如* $< ,> ? ! %[] | \?

rule = re.compile(r'')

2 个答案:

答案 0 :(得分:2)

您可以在此处使用regexstr.translate

>>> from string import punctuation
>>> punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

>>> strs = "fo@#$%sf*&"

>>> re.sub(r'[{}]'.format(punctuation),'',strs)
'fosf'

>>> strs.translate(None,punctuation)
'fosf'

答案 1 :(得分:1)

阅读character classes tutorial

rule = re.compile(r'^[^*$<,>?!%[]\|\\?]*$')

^:字符串开始。
[^ .... ]:否定字符类 - 匹配除了这些字符之外的任何内容 *:重复0次或更多次 $:字符串结束。