¿Tiene HtmlAgilityPack la capacidad de usar expresiones regulares en su selector XPATH?

c# html-agility-pack regex xpath

Pregunta

Me gustaría poder crear una colección de nodos donde el texto comience con una palabra y luego con un número. Por ejemplo, dado lo siguiente:

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

Me gustaría poder crear una colección que consta de dos nodos de párrafo: FINDTHIS 1 y FINDTHIS 2.

Un posible enfoque sería crear una consulta xpath como //p[starts-with(., 'FINDTHIS ')] y luego usar una expresión regular para determinar si el siguiente carácter es un número o no. Si quisiera obtener una lista de coincidencias que devolviera los criterios anteriores, podría crear un objeto de expresión regular y probar el texto para cada miembro de la colección.

¿Hay alguna forma de utilizar una expresión regular directamente dentro del selector utilizando HtmlAgilityPack?

Respuesta aceptada

No, el paquete de agilidad HTML actualmente no admite esto. Es compatible con consultas XPath versión 1, que no admite expresiones regulares .

Dicho esto, tendrá que hacer lo que recomendó y seleccionar usando la expresión XPath hasta el punto en el que desee usar una expresión regular, y luego usar el método de extensión Where para filtrar los nodos apropiados en función de una instancia RegEx .


Respuesta popular

No está disponible de inmediato, pero puede agregar esta funcionalidad fácilmente. Se describe aquí: HtmlAgilityPack: xpath y regex



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué