У HtmlAgilityPack есть возможность использовать регулярные выражения в своем селекторе XPATH?

c# html-agility-pack regex xpath

Вопрос

Я хотел бы иметь возможность создавать коллекцию узлов, где текст начинается со слова, а затем числа. Например, учитывая следующее:

<p>FINDTHIS 1</p>
<p>FINDTHIS SOMETEXT</p>
<p>FINDTHIS 2</p>

Я хотел бы иметь возможность создать коллекцию, состоящую из двух узлов абзаца: FINDTHIS 1 и FINDTHIS 2.

Одним из возможных подходов было бы создание запроса xpath, такого как //p[starts-with(., 'FINDTHIS ')] а затем использовать регулярное выражение для определения того, является ли следующий символ числом. Если бы я хотел получить список совпадений, которые вернули вышеприведенные критерии, я мог бы создать объект регулярного выражения и протестировать текст для каждого члена в коллекции.

Есть ли способ использовать регулярное выражение непосредственно в селекторе, используя HtmlAgilityPack?

Принятый ответ

Нет, пакет Agility Pack в настоящее время не поддерживает это. Он поддерживает запросы XPath версии 1, которые не поддерживают регулярные выражения .

Тем не менее, вам нужно будет сделать так, как вы рекомендуете, и выбрать с помощью выражения XPath до того момента, когда вы хотите использовать регулярное выражение, а затем использовать метод расширения Where чтобы отфильтровывать соответствующие узлы на основе экземпляра RegEx .


Популярные ответы

Он недоступен из коробки, но вы можете легко добавить эту функцию. Это описано здесь: HtmlAgilityPack: xpath и regex



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow