我正在尝试标识一组{@,$,!,%,&,^}无效的元字符。 这是Python3代码:
import re
def _getHTML(input):
if re.search(r'(\!|\@|\#|\$|\%\^)', input) is not None:
raise Exception('Invalid metacharacter found:(@,$,!,%,&,^)')
else:
print("passed")
但是,当_ getHTML('eee e rwer %')
由于出现“%”而应引发错误时,会导致“通过”。
答案 0 :(得分:2)
在正则表达式模式中,|
之后缺少\%
(或):
(\!|\@|\#|\$|\%|\^)
但可以使用字符类来代替OR-ing和需求分组(因为以后将不再引用),
[!@#$%^]
您也可以摆脱\
内部的[]
转义符。