如何创建一个使字符串不包含标点符号/特殊字符的正则表达式,例如 * $ < , > ?!% [ ] | \?
rule = re.compile(r'')
您可以使用regex
或str.translate
在此处使用:
>>> from string import punctuation
>>> punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> strs = "fo@#$%sf*&"
>>> re.sub(r'[{}]'.format(punctuation),'',strs)
'fosf'
>>> strs.translate(None,punctuation)
'fosf'
阅读字符类教程。
rule = re.compile(r'^[^*$<,>?!%[]\|\\?]*$')
^
: 字符串的开头。
[^ .... ]
: 否定字符类 - 匹配除这些字符以外的任何字符。
*
: 重复 0 次或多次。
$
: 字符串结束。