document.evaluate regexes
Я хочу получить все элементы "a" с атрибутом href в этой форме: http(s)://any.example.com, где any может быть строкой, содержащей только буквы и / или цифры. Я новичок в регулярных выражениях и XPath, поэтому я не могу понять это правильно. Я понял это регулярное выражение, но я не уверен, что это на 100% правильно: Code:
/(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 );
но это не работает
Буду признателен, если кто-нибудь сможет мне помочь.
2 ответа
На сегодняшний день похоже, что браузеры в настоящее время не поддерживают XPATH 2. Применение регулярных выражений к атрибутам поддерживается только в XPATH 2.0.
Вы хотите применить регулярное выражение после фильтрации для элементов с использованием XPATH 1.0 (без регулярного выражения), выполнить итерации по элементам и дополнительно отфильтровать элементы, используя вместо этого регулярное выражение уровня JS
Рекомендации:
Ваше регулярное выражение выглядит немного странным и чрезмерно сложным.
Попробуй это:
https?://[A-Za-z0-9]+\.example\.com/