lxml find
with id='post-[0-9]*' [重复]

2024-04-02

我试图找到所有 id 以“post-{这里有很多数字}”开头的 div 标签 我尝试过这样的事情:

tree.xpath("//div[starts-with(@id,'post-[0-9]')]")

但并没有真正起作用。有没有办法在 python 中不导入正则表达式来做到这一点?


XPath 1.0 http://www.w3.org/TR/xpath不支持正则表达式,即函数starts-with不支持正则表达式。

Lxml 不支持 XPath 2.0。您有以下三个选择:

  • 切换到能够处理 XPath 2.0 的处理器。然后您可以使用fn:匹配() http://www.w3.org/TR/xpath-functions/#func-matches功能。

  • 使用 XPath 1.0 兼容的解决方案。这相当丑陋,但它有效,并且在某些情况下可能是最简单的解决方案。然而,这不是一个通用的解决方案!它将替换中的数字@id with a -并与之匹配。所以如果原来的id是这样的post--。使用您知道不会出现在该位置的字符。



tree.xpath("//div[starts-with(translate(@id, '0123456789', '----------'), 'post--')]")
  
  • lxml 支持EXSLT 命名空间 http://www.exslt.org/regexp/functions/test/index.html您可以从那里使用正则表达式函数。我认为这是最好的解决方案。


regexpNS = "http://exslt.org/regular-expressions"
r = tree.xpath("//div[re:test(@id, '^post-[0-9]')]", namespaces={'re': regexpNS})
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lxml find
with id='post-[0-9]*' [重复] 的相关文章

随机推荐

  • SWI-Prolog - 显示长列表

    我正在使用 SWI Prolog 我正在尝试打印一个列表 但如果该列表有超过 9 个项目 它看起来像那样 1 15 8 22 5 19 12 25 3 有没有办法显示整个列表 看一下 http www swi prolog org FAQ
  • 在 Yii 框架中配置数据库连接

    在Yii框架的main php文件中 有一些配置选项 这就是mysql的设置方式 db gt array connectionString gt mysql host localhost dbname testdrive emulatePr
  • Pylint 警告:可能存在不平衡的元组按顺序解包

    我有一段Python代码 def func1 a set b join map str list a return b def func2 d 1 e 2 return func1 d e def main a b c d func2 if
  • Swift 中具有共享 NSUserDefaults 的 KVO

    我在通过通信 NSUserDefaults 更改在主机应用程序及其扩展之间进行通信时遇到问题 我初始化了NSUserDefaults using init suiteName 添加 KVO 观察者使用addObserver 方法并覆盖该方法
  • Lombok 未在 Netbeans 项目中工作

    我想在项目中使用Lombok来使用 Getter和 Setter 我包括使用 Maven
  • 显示图像的片段中的内存问题

    我正在使用片段来显示图像 页面 我有一个活动 主要 其中包含所有片段 package com example hscroll demo import android os Bundle import android preference P
  • 为 POCO 实施 IEquatable

    我注意到 EF 的 DbSet Add 非常慢 谷歌搜索了一下 找到了一个 SO 答案 承诺性能提升高达 180 倍 https stackoverflow com a 7052504 141172 https stackoverflow
  • 计算 SQL 中特定事件之前和之后的事件数量?

    我有一个包含日期和事件的表 有一个名为 A 的事件 我想知道 Sql Bigquery 中事件 A 之前和之后发生了多少个事件 例如 User Date Events 123 2018 02 13 D 123 2018 02 12 B 12
  • 从网络数据抓取类返回数据?

    我正在尝试创建一个类 它可以让我从网络服务获取请求的数据 我被困在如何返回值上 FooClass m DataGrabber is the class which is supposed to get values dataGrabber
  • R:使用矢量化按间隔分配值

    让我们有一个数字向量 a lt round runif 20 1 5 0 1 3 5 4 2 1 2 3 4 5 2 我需要使用如下表为这些数字分配值 1 to 2 assign A 3 to 4 assign B 5 assign C 这
  • Ruby Mixins 和实例变量

    是否有将参数传递给混合方法的最佳实践方法 使用 mixin 的类可以设置混合方法期望的实例变量 或者可以将所有必要的参数作为参数传递给混合方法 背景是我们有一个 Rails 控制器来发布内容 但其他控制器甚至模型都需要能够 充当发布者 所以
  • 错误“来源:系统进程已退出,因此请求的信息不可用”

    它在我的电脑上可以工作 但是当我放入另一台机器时 我收到错误 源 系统进程已退出 因此请求的信息不可用 并且 exe 没有出来 有哪位有经验的兄弟可以帮忙吗 赞赏 p New Process With p EnableRaisingEven
  • GooglePlayServices Admob 问题:“无法加载广告:0”

    我对新的 admob 有疑问 这是我的代码 尝试在我的主要活动中创建和加载广告 private void createAndLoadAd String adUnitID RelativeLayout rlRoot View upperVie
  • 如何创建在特定条件下对另一列进行计数的列?右

    下面 数据已被重新调整 并列出了输入和预期输出 Data structure list record id c 110101 110101 110101 110101 110101 110101 110101 110101 110101 1
  • 如何为 ruby​​ on Rails 创建 .htaccess?

    有谁知道创建 htaccess在铁轨上 请指导我 谢谢 regards 您只需在网站文档根目录中创建 htaccess 文件即可 在 apache 中 这将是您网站的文档根目录 可能类似于 var www your website com
  • 将 KeyVaultClient 与 MSAL 令牌“未经授权”结合使用

    桌面应用程序如何使用 Azure AD 读取 KeyVault 机密 我能够获取 MSAL 令牌 但将其交给 KeyVaultClient 始终会导致 Microsoft Azure KeyVault Models KeyVaultErro
  • AtomicInteger 线程安全

    我怎样才能实现这里的 while 循环总是恰好执行 100 次 当我执行代码时 在极少数情况下 它会在控制台上打印 99 或 98 行 而不总是 100 行 这是我不明白的 import java util ArrayList import
  • Android:SkImageDecoder::Factory 返回 null

    我正在使用本地主机来获取图像并在 ImageView 中查看 由于某种原因 我收到 Factory returned null 错误 我已经仔细检查了代码很多次 但我不明白有什么问题 任何帮助 将不胜感激 GalleryZoom java
  • Android Rect 对象中的上、左、右、下是什么意思

    我有一个 Android 项目 我应该让 Apple 崩溃 苹果被画在一个矩形中 所以我创建了一个改变矩形位置并重新绘制的函数 这是我的功能 private void updateApplesPosition for Rect rect f
  • lxml find

    这个问题在这里已经有答案了 我试图找到所有 id 以 post 这里有很多数字 开头的 div 标签 我尝试过这样的事情 tree xpath div starts with id post 0 9 但并没有真正起作用 有没有办法在 pyt