我想通过使用 xpath 搜索文本来匹配以 % 开头并以 % 字符结尾的 html 字符串。
条件:
- 字符串以 % 开头
- 字符串以 % 结尾
- 一个 html 文档中可以没有或有多个匹配项
- 字符串可以包含(但是可选的) :: 但在 :: 前后至少需要 1 个字母字符
- 在第一个和最后一个 % 字母之间,允许使用数字和 - 字符。
我得到的最好的是$xpath->query("//*[text()[starts-with(., '%')][substring(., string-length(.) - 1) = '%']]");
但这行不通。php Dom 的新手,发现自己很难找到答案。解释非常有价值!
提前致谢!
编辑
请参阅下面的评论,在这种情况下使用 preg_match_all 更好。目前我为此使用以下代码:
preg_match_all('/%{1}[a-zA-Z0-9-]+?(::?[a-zA-Z0-9-]+?)?%{1}/', $string, $match);
接受对此模式的改进。