我想以这种形式获取所有具有 href 属性的“a”元素:
http(s)://any.example.com
,其中any
可以是仅包含字母和/或数字的字符串。
我是正则表达式和 XPath 的新手,所以我无法正确理解。
我找到了正则表达式,但我不确定它是否 100% 正确:
/(http|https)://+[A-Za-z0-9]+\.example+\.+com/
所以 XPath 看起来像这样:
document.evaluate("//a[@href='/(http|https)://+[A-Za-z0-9]+\.google+\.+com/']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
但是不起作用。
如果有人能帮助我,我将不胜感激。
截至今天,浏览器目前似乎不支持 XPATH 2。仅在 XPATH 2.0 中支持对属性应用正则表达式
您可能希望在使用 XPATH 1.0(无正则表达式)过滤元素后应用正则表达式,迭代元素并使用 JS 级别正则表达式进一步过滤元素
参考资料:
你的正则表达式看起来有点不对劲,而且过于复杂。
试试这个:
https?://[A-Za-z0-9]+\.example\.com/