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.

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)">
 
...
Mon expression régulière consiste à matcher les attributs de la première div.
Lorsque que je suis en RegexOptions.SingleString avec la première expression tout fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
"<div id=\"([0-9]+)_([0-9]+)_([0-9]+)__([0-9]+)([^/]*)(/.+?)'\">"
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.
Par contre si je ne suis pas en SingleLine, la seconde expression fonctione bien.
Je ne comprends pas du tout pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
"<div id=\"([0-9]+)_([0-9]+)_([0-9]+)__([0-9]+)([^/]*)(/.+)'\">"
Pouvez-vous me donner une explication ?

Merci.