【问题标题】:Regex does not match but seems to be correct正则表达式不匹配但似乎是正确的
【发布时间】:2013-02-27 11:05:32
【问题描述】:

我有一个很奇怪的问题:

在多个在线服务中使用相同的正则表达式匹配,但在我的本地 python 3.3 实例中没有。

re.search("ajaxHandler\('(?P<fp>[A-Z0-9]+)",rawdata).group("fp")

原始数据在哪里

<select name="F4542661421192HPAUS" onchange="liftAjax.lift_ajaxHandler('F4542661421185WLRZY=' + encodeURIComponent(this.value), null, null, null)">[... blabla ...]</select>

知道出了什么问题吗?

【问题讨论】:

    标签: python regex pattern-matching python-3.3


    【解决方案1】:

    我无法重现:

    Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:57:17) [MSC v.1600 64 bit (AM
    D64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import re
    >>> rawdata="""<select name="F4542661421192HPAUS" onchange="liftAjax.lift_ajaxHandler('F4542661421185WLRZY=' + encodeURIComponent(this.value), null, null, null)">[... blabla ...]</select>"""
    >>> re.search("ajaxHandler\('(?P<fp>[A-Z0-9]+)",rawdata).group("fp")
    'F4542661421185WLRZY'
    

    【讨论】:

    • 可能是编码问题
    • 一开始我也是这么想的。但在字符串中只有 ASCII 符号。如果我尝试确切的@tim-pietzcker 尝试,它似乎工作。如果我将这三行放入一个文件并加载它们,它就不起作用。
    • “将它们放入文件并加载它们”是什么意思?您是指将它们作为 Python 模块导入,还是从文本文件中加载正则表达式?你到底是怎么做到的?
    • 我使用普通编辑器将您的命令写入文本文件,添加了 shebang 并使用“python3.3 textfile.py”执行它们
    • 错误信息是什么?你确实删除了&gt;&gt;&gt;s,对吧?
    【解决方案2】:

    您能否更准确地说明您的问题?我也无法重现此错误:

    rawdata = """<select name="F4542661421192HPAUS" onchange="liftAjax.lift_ajaxHandler('F4542661421185WLRZY=' + encodeURIComponent(this.value), null, null, null)">[... blabla ...]</select>"""
    
    print(re.search("ajaxHandler\('(?P<fp>[A-Z0-9]+)",rawdata).group("fp"))
    
    Output: F4542661421185WLRZY
    

    也许您的 rawdata 类型出了点问题?没有 """ 我得到一个非类型错误,因为 ' 和 " 没有 \" 就不能工作,虽然这不应该是你的问题?

    【讨论】:

    • 一切都正确。我已经在另一台计算机上尝试了相同的文件(只是为了检查我的 python 是否损坏或其他东西)=> 是的,它被损坏了。我已经完全重新安装了它,现在它可以工作了,我不知道为什么 - 但工作正常。
    • 好的!这是您最不期望的。但新安装通常会消除您在数月/数年内更改的所有故障/设置。
    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多