-3

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

rule = re.compile(r'')
4

2 回答 2

2

您可以使用regexstr.translate在此处使用:

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

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

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

>>> strs.translate(None,punctuation)
'fosf'
于 2013-07-05T10:05:04.000 回答
1

阅读字符类教程

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

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

于 2013-07-05T10:04:46.493 回答