Est-il possible de gérer l'exception si regex.Matches
ne correspond rien et essayer de retourner matches.group[]
Dépannage lorsque regex ne correspond pas?
J'ai une liste de 10 albums en divs HTML. Chaque album a 5 propriétés comme album cover path
, album link
, album name
etc J'ai effectué l'analyse HTML en utilisant regex matchcollection dans une fonction et j'appelle cette fonction pour chaque propriété.
Regex regex = new Regex(pattern, RegexOptions.Compiled);
MatchCollection mc = regex.Matches(source);
string icerik = mc[0].Groups[group].Captures[0].Value;
-je obtenir une liste claire comme ceci:
- chemin de l'image:
http...
- nom de l'album:
...
Si ces pièces existent dans le code html il n'y a pas de problème. Mais le problème est, que si, par exemple, le chemin de l'image du 2ème album n'est pas fourni en html? Dans ce cas, il n'y a pas de correspondance et mc[0].Groups[group].Captures[0].Value
provoque une exception de limite.
Que puis-je faire pour bloquer cette erreur avant qu'elle ne se produise?
Évitez d'utiliser regex pour analyser le code HTML. Voir http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html Essayez plutôt d'utiliser une bibliothèque spécialisée (par exemple, HtmlAgilityPack) – GolfWolf
[Avez-vous essayé d'utiliser un analyseur XML à la place? ?] (http://stackoverflow.com/a/1732454/26226) – jrummell
maintenant je n'ai pas assez de temps pour redémarrer mais je garderai ceci dans mon esprit pour la prochaine fois. merci :) – burakokumus