lxml查找id ='post- [0-9] *'的<div>

我正在尝试查找所有ID为以“ post- {这里有很多数字}”开头的div标签,我尝试过这样的操作:

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

但是并不能真正起作用。有没有一种方法,而无需在python中导入正则表达式?


倚天杖
浏览 227回答 4
4回答

人到中年有点甜

如果您只想检查以'post-'开头的@id,则xpath//div[starts-with(@id,'post-')]就足够了。但是,如果您要查找@id,它必须是'post- $ AnyDigit的组合,则必须使用matches()function。

隔江千里

解决此类问题的xpath-1.0解决方案将是use&nbsp;translate()。例如:translate( @id, '0123456789' , '0' )将任何数字更改为0('123'->'000'。因此,如果您想查找例如“ post-”后跟三位数的数字,请使用类似以下内容的内容:"//div[starts-with(translate(&nbsp;@id,&nbsp;'0123456789'&nbsp;,&nbsp;'0'&nbsp;),&nbsp;'post-000')]"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python