【问题标题】:Why python regex match function matches that special character? [closed]为什么 python 正则表达式匹配函数匹配那个特殊字符? [关闭]
【发布时间】:2015-05-08 01:05:20
【问题描述】:

我有正则表达式模式"^[a-zA-z0-9]+$" 据我了解,它应该描述一个词或类似的东西。 我尝试验证像"counter"这样的字符串:

re.match("^[a-zA-z0-9]+$", "counter")
# Result: <_sre.SRE_Match object at 0x000000AA2053C578> # 

如果我有像 "/" 这样的特殊字符,它将不匹配(不返回任何内容)。

re.match("^[a-zA-z0-9]+$"), "coun/ter")

但如果我试试这个:

re.match("^[a-zA-z0-9]+$", "coun[ter")
# Result: <_sre.SRE_Match object at 0x000000AA2053C440> # 

再次匹配,我不明白为什么?

【问题讨论】:

    标签: python regex match special-characters


    【解决方案1】:

    你的正则表达式应该是:

    re.match('^[a-zA-Z0-9]+$', "coun[ter")
    

    不是

    re.match('^[a-zA-z0-9]+$', "coun[ter")
    

    当您拥有 A-z 时,它会捕获从 A (ASCII 65) 到 z (122) 的所有内容,并且还匹配 [ (91)。

    【讨论】:

    • @anubhava 你的视野很好!
    • 这是一个由印刷错误引起的简单问题,即off-topicPlease do not answer off-topic questions. 参加 tour.
    • - 未转义或某人对字符类的理解不同时,我看到了许多正则表达式问题。这很可能是其中之一,尽管拼写错误也可能是这个正则表达式的原因。此外,我还添加了一个解释,为什么允许 [ 而不允许 /
    猜你喜欢
    • 2020-07-26
    • 2021-11-03
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多