Bonjour, j'ai un problème que je ne comprends pas avec une expression régulière.
Le but de mon programme, en C# sur le framework 3.5, est d'enregistrer certaines informations d'une page html.
Pour cela, j'enregistre la reponse de ma requête dans une string et ensuite j'applique une expression régulière, sur le code obtenu, afin d'en extraire les données qui m'intéressent.
La partie du code html qui m'intéresse ressemble à ça, il se répète plus fois dans la page.
Mon expression régulière consiste à matcher les attributs de la première div.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ... <div id="111111_11111_1__1" class="aaa" onmouseover="displayActions(this);" onclick="top.window.location='/aaa/aaaa/aaaa/aaa/12420198'"> <div class="small_picture" style="background-image:url(http:///8/9/1/0/2/4/2/thumb1_1.jpg)"> ...
Lorsque que je suis en RegexOptions.SingleString avec la première expression tout fonctionne.
Si je ne mets pas en lazy le dernier groupe, à l'aide du point d'interrogation, l'expression régulière mange toute la fin de la chaîne de caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2"<div id=\"([0-9]+)_([0-9]+)_([0-9]+)__([0-9]+)([^/]*)(/.+?)'\">"
Par contre si je ne suis pas en SingleLine, la seconde expression fonctione bien.
Je ne comprends pas du tout pourquoi.
Pouvez-vous me donner une explication ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2"<div id=\"([0-9]+)_([0-9]+)_([0-9]+)__([0-9]+)([^/]*)(/.+)'\">"
Merci.
Partager