Comment extraire des valeurs entre guillemets d'une chaîne HTML?

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

Question

J'ai l'extrait de code suivant, extrait d'une page 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>

Mon objectif est d'extraire "Corentin Tolisso", le numéro de maillot "24" ainsi que les valeurs de data-x et data-y.

Jusqu'à présent, je suis capable de le faire fonctionner avec des valeurs comprises entre >...< , en utilisant HTML Agility Pack.

Cependant, je ne trouve pas le moyen d'extraire les nombres de data-x et data-y.

J'ai copié la chaîne HTML dans un nouveau jsfiddle, qui affiche exactement ce que mon code C # obtient, les choses entre >...< .

Comment extraire les valeurs de data-x et data-y?

Remarque: L'utilisation de String.IndexOf fonctionne bien, mais enlève toute flexibilité. Ceci est ma stratégie de repli.

Note 2: J'ai regardé ici et ici , les deux me donnant une idée, mais j'ai toujours du mal à l'appliquer à C #.

Réponse populaire

1 voie utiliserait (["'])(?:(?=(\\?))\2.)*?\1 Il supporte aussi les guillemets imbriqués

Essayez ce lien: https://regex101.com/r/cB0kB8/1

Avec JQuery, cela est très simple.

Vérifiez également un exemple trouvé ici: Obtenir la valeur de la saisie de texte 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());
});

J'espère que ça vous aide!




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi