我试图在XPath中找到与正则表达式相同的(。*)。现在这就是我现在所拥有的:
我有一个带有h world/nl44/town/ANYNUMBER
的HTML a-tag,其中ANYNBUMBER
所以它可以是:world/nl44/town/12345
和world/nl44/town/1232
被随机值替换(我只需要一个标签的值。
查询看起来像这样:
$elements = $xpath->query('//a[@href="/world/nl44/town/ANYNUMBER"]');
使用当前ANYNUMBER
替换为XPath等效的(。*)
总结一下:
<a href="/world/nl44/town/12344">Something</a>
&lt; - 这就是我的样子,12344可以是任何数字,我只需要标签之间的值,所以在这个例子中我希望它返回“Something”。
我该怎么做?
答案 0 :(得分:3)
您可以使用starts-with()
function:
//a[starts-with(@href, "/world/nl44/town/")]
答案 1 :(得分:0)
XPath 2.0有String Functions that Use Pattern Matching,其中11208 sendto(4, "set 29170397297_-cache-schema 85 0 127240rn257202v0?00022710stdClass247213cid216schema214d37ata25n247215block246216fields24f213bid2425214type 037erial2110not null5216module244167217va37rchar216length6@16t5217defaultr215de2lta@516v16f6 35716r210010215t 207
本身可以使用:C
30@6216rr n4tatus@04213int/760214size 222finy216weight243 ;022300 66region@83405P5custom
27300,171623162421nvisibility340t3475pages242 20534tex@206 2611it 365052400377
y10r21ftransl!N2ble %1ca!a3403Q01n31vprimary key2416016621vunique@21ts241213tmd243 31020 2vn621616217index 210101214list24524036021 3610266316256416n 164214name 70na3172_ro
25205!$0n 3341223016340016A2142213r!354@ v222110unsigned5@3320362130n 213016 l6%16!24116%
2710%@p516#16$21f200l241b@n24166M21016&@E4214bod201_53216t41623B\2g1634 303info .07a2550200@q!L56forma201332B/!d241637 y0*
y0 225a;2402012'21van0_207
200251613400U =@U1163@222 2122lob@On2316)216expire@303420267217create24117< 250n2031"1770d
Y022 30555small240!a320.`2300.240240012402403,21vb S2kpo"3132s246!2202t212241q010...
因此在XPath 2.0中,您可以使用:
C
XPath 1.0不支持基于正则表达式的模式匹配,只支持基本的字符串函数。虽然/760214size 222finy216weight243 ;022300 66region@83405P5custom
没有直接等效,但有时可能会使用starts-with()
(在此特定情况下请参阅@alecxe's solution,+ 1),contains()
或其他XPath 1.0 {{ 3}}忽略字符串的一部分,以达到与匹配0377
类似的结果。作为另一个示例,可以通过String Functions clever combination,substring()
和字符串相等性检查来忽略字符串的开头,从而有效地实现n31vprimary key2416016621vunique@21ts241213tmd243 31020 2vn621616217index 210101214list24524036021 3610266316256416n 164214name 70na3172_ro
- 类似功能。