【问题标题】:python regex xpath - regex an attribute of XPATHpython regex xpath - 正则表达式 XPATH 的一个属性
【发布时间】:2019-03-24 09:27:51
【问题描述】:

给定一个灵活的正则表达式字符串,我需要找到所有附加的属性。

示例字符串:/html/body/div[1]/div/a/(@title|@href)

需要返回['@title', '@href']

我做了一些研究并创建了一个这样的正则表达式模式:/@\w+/g

在 regex101 上尝试过,它似乎确实有效:https://regex101.com/r/cO8lqs/9124

但是当我用 python 编码时

import re
xpath = "/html/body/div[1]/div/a/(@title|@href)"

print(re.findall("/@\w+/g", xpath)) # should have been worked

它返回[]

如上所述,需要返回['@title', '@href']

我错过了什么吗?

【问题讨论】:

  • Python 的正则表达式语法不同。试试这个re.findall("@\w+", xpath)
  • @FailSafe 我是多么愚蠢:) 你应该得到代表。非常感谢。
  • 别担心,伙计。

标签: python regex xpath


【解决方案1】:

正如@FailSafe 在问题评论中所建议的那样,我需要将正则表达式模式从/@\w+/g 更改为@\w+

【讨论】:

    【解决方案2】:

    您也可以尝试另一个 XPath 表达式来获得相同的输出

    /html/body/div[1]/div/a/@*[name()="title" or name()="href"]
    

    【讨论】:

    • 感谢您的回答。给定的输入很灵活,因此输入可能与您建议的一样,然后我的旧正则表达式模式将无法过滤它。有什么要为我重新考虑的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 2015-04-08
    • 2011-05-09
    • 2010-11-18
    • 2021-07-13
    • 1970-01-01
    相关资源
    最近更新 更多