CONTEXT
假设以下HTML
....
<p>Whatever</p>
<div>Whatever DIV78232 Everwhat</div>
....
问题:
如何返回包含DIVnnnnn
的纯文本字符串,其中nnnnn表示任何数字。
到目前为止我的调查:
xPath replace()函数将替换当前DOM中找到的模式。
replace(.,'.*?(DIV\d+).*','$1') => DIV78232
为什么我会被阻止?
因为我希望查询将“DIV78232”作为字符串返回,而实际上根本没有在DOM中替换它,就像它将为查询/p/text()
返回“Whatever”一样[我正在尝试所有这些在FirePath firefox-extension]
注意:根据官方DOCS
“replace()返回第一个参数的值 子字符串由正则表达式匹配,即正则表达式的值 第二个参数替换为值的替换字符串 第三个论点。“
最终目的:
我的最终目的是从这里获取(字符串)与'.*?image:.*?"(.+?)".*'
匹配的IMAGE URL(在HTML中):
在这种情况下,查询//*[matches(.,'.*?image:.*?"(.+?)".*','i')]
返回整个节点,但我只想要第一个捕获组,它将是IMAGE URL。
<script>...vp&output=xml_vast2&unviewed_position_start=1&
url='+encodeURIComponent(location.href)+'
description_url='+encodeURIComponent(location.href)+'&
image: "https://domain.com/xxxxxxx/public_images/2015.12/article/56797be1c46188ac438b45c3.jpg", // stretching: 'fi..</script>
答案 0 :(得分:0)
花了我很长时间,但这是我通过组合 replace()和 tokenize()
得到的结果 tokenize(replace(.,'.*?image:.*?"(.+?)".*?',':@:$1:@:'),':@:')[2]
返回上述代码段中的图片网址。
为什么/如何运作?
有没有更快的方法来实现这个目标?
感谢。祝一切顺利。和平。