¿Cómo extraer valores en comillas de una cadena HTML?

c# html html-agility-pack javascript web-scraping

Pregunta

Tengo el siguiente fragmento de código, recuperado de una página web:

<li class="player" data-id="168568" data-teamid="156" data-x="142.33" data-y="297.16040000000004" data-name="Corentin Tolisso" data-position="3">Corentin Tolisso<span class="shirt">24</span></li>

Mi objetivo es extraer "Corentin Tolisso", el número de camiseta "24", así como los valores de data-x y data-y.

Hasta ahora puedo hacer que funcione con valores que están dentro de >...< , usando HTML Agility Pack.

Sin embargo, no puedo encontrar una manera de extraer los números de data-x y data-y.

He copiado la cadena HTML en un nuevo jsfiddle, que muestra exactamente lo que mi código de C # está obteniendo, las cosas entre >...< .

¿Cómo extraigo los valores de data-x y data-y?

Nota: el uso de String.IndexOf funciona bien, aunque le quita flexibilidad. Esta es mi estrategia de reserva.

Nota 2: Miré aquí y aquí , los cuales me dan alguna idea, pero aún me cuesta trabajo aplicarlo a C #.

Respuesta popular

1 forma estaría usando (["'])(?:(?=(\\?))\2.)*?\1 También admite comillas anidadas

Pruébelo en este enlace: https://regex101.com/r/cB0kB8/1

Con JQuery lo hace muy simple.

También puedes ver un ejemplo encontrado aquí: Obtención del valor de la entrada de texto HTML

<form name="input" action="handle_email.php" method="post">
Email: <input type="text" name="email" />
<input type="submit" value="Newsletter" />
</form> 
<a id="regLink" href="http://mywebsite.com/register?user_email=">Register</a>

$('input[name="email"]').change(function(){
alert($('#regLink').attr('href')+$('input[name="email"]').val());
});

Espero que te ayude!



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é