Как я могу создать выражение XPath, которое работает как регулярное выражение, чтобы оно соответствовало экземплярам следующего
? Вот пример того, что я хочу использовать с помощью синтаксиса регулярных выражений:
string = 'blah_blah next '
xpath="//a[contains(text(),'.*?next.*')]");
Я новичок в XPath, и поиск по учебникам мне не помог.
В XPath 1.0 это выражение делает то, что вы хотите:
//a[contains(.,'next')]
Из http://www.w3.org/TR/xpath/#section-String-Functions
Функция: логическое значение содержит (строка, строка)
Функция contains возвращает true, если первая строка аргумента содержит вторая строка аргумента и в противном случае возвращает ложь.
Для более сложного сопоставления с использованием RegExp вам понадобится процессор XPath 2.0 со следующими встроенными функциями: match()
, replace()
, tokenize()
и т. д.