Python正则表达式无法识别\%和\ ^

时间:2018-08-10 17:15:51

标签: python regex python-3.x

我正在尝试标识一组{@,$,!,%,&,^}无效的元字符。 这是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 %')由于出现“%”而应引发错误时,会导致“通过”。

1 个答案:

答案 0 :(得分:2)

在正则表达式模式中,|之后缺少\%(或):

(\!|\@|\#|\$|\%|\^)

但可以使用字符类来代替OR-ing和需求分组(因为以后将不再引用),

[!@#$%^]

您也可以摆脱\内部的[]转义符。