我发现我需要使用xpath查询找到几乎正则表达式的字符串,但是无法看到如何管理它。我正在使用的当前查询是:
$result = $xpath->query('//ul/li[starts-with(@id, "message-")]');
导致一些误报。它应该真正寻找消息-123或消息-987等。有没有办法告诉xpath在regexp中使用类似于\ d(数字)的东西?
答案 0 :(得分:0)
试试这个:
$xpath->query('//ul/li[matches(@id,"^message-\d{3}")]')
编辑:我的不好,抱歉 - 试试这个:
$xpath->query('//ul/li[php:functionString("preg_match", "/^message-\d{3}/", @id)]')
答案 1 :(得分:0)
将此XPath 1.0表达式用于'message-' + integer
模式:
//ul/li[
@id[
starts-with(., 'message-')
and
number(
substring-after(., 'message-')
)
= floor(
substring-after(., 'message-')
)
]
]