OVH Cloud OVH Cloud

SOS !!!! Problèmes avec Expressions régulières RegEX

4 réponses
Avatar
Denis
Bonjour,

Je repose ma question ici car je n'ai pas encore trouver comment faire ce
que je veux.

Mon problème est avec l'utilisations des expressions regulières, je n'arrive
pas à faire ceci :

Je souhaite récupérer dans un MatchCollection toutes les lignes d'un journal
(fichier texte) qui contiennent des mots clés:

Exemple :

24/08/2006 10:20:20 blablabla blablabla errbla 1<br>
24/08/2006 10:20:20 blablabla blablabla bla 2<br>
24/08/2006 10:20:20 blablabla blablabla errbla 3<br>
24/08/2006 10:20:20 blablabla blablabla bla 4<br>
24/08/2006 10:20:20 blablabla blablabla errbla 5<br>

je veux récupérer uniquement les lignes qui contiennent "err"

donc le résultat devrait me donner :

24/08/2006 10:20:20 blablabla blablabla errbla 1
24/08/2006 10:20:20 blablabla blablabla errbla 3
24/08/2006 10:20:20 blablabla blablabla errbla 5

sans les <br>

Quelqu'un peut me dire comment faire , je suis dessus depuis une semaine, je
teste plein de chose et rien ne fonctionne, j'ai mal à la tête, voici le
dernier test, mais cela ne marche pas

strRegPattern = @"(\d{2,2}/\d{2,2}/\d{2,4} \d{2,2}:\d{2,2}:\d{2,2}).+(" +
strMotCle + ").+[^(<)br(>)]";


Où est-ce que je peux trouver des informations sur la logique de cet art,
que sont les RegEx ? Merci d'avance pour vos réponses

Denis

4 réponses

Avatar
Sébastien FERRAND
j'essayerai quelquechose du genre :

string pattern = @"^(d{2}/d{2}d{2,4} d{2}:d{2}:d{2}).+?(" +
motClé + @").+?(?!<br>)$"

il faut aussi que tu ajoutes l'option multiligne à l'objet regex...

Séb

Denis avait soumis l'idée :
Bonjour,

Je repose ma question ici car je n'ai pas encore trouver comment faire ce que
je veux.

Mon problème est avec l'utilisations des expressions regulières, je n'arrive
pas à faire ceci :

Je souhaite récupérer dans un MatchCollection toutes les lignes d'un journal
(fichier texte) qui contiennent des mots clés:

Exemple :

24/08/2006 10:20:20 blablabla blablabla errbla 1<br>
24/08/2006 10:20:20 blablabla blablabla bla 2<br>
24/08/2006 10:20:20 blablabla blablabla errbla 3<br>
24/08/2006 10:20:20 blablabla blablabla bla 4<br>
24/08/2006 10:20:20 blablabla blablabla errbla 5<br>

je veux récupérer uniquement les lignes qui contiennent "err"

donc le résultat devrait me donner :

24/08/2006 10:20:20 blablabla blablabla errbla 1
24/08/2006 10:20:20 blablabla blablabla errbla 3
24/08/2006 10:20:20 blablabla blablabla errbla 5

sans les <br>

Quelqu'un peut me dire comment faire , je suis dessus depuis une semaine, je
teste plein de chose et rien ne fonctionne, j'ai mal à la tête, voici le
dernier test, mais cela ne marche pas

strRegPattern = @"(d{2,2}/d{2,2}/d{2,4} d{2,2}:d{2,2}:d{2,2}).+(" +
strMotCle + ").+[^(<)br(>)]";


Où est-ce que je peux trouver des informations sur la logique de cet art, que
sont les RegEx ? Merci d'avance pour vos réponses

Denis



--
---
Sébastien FERRAND
Microsoft Visual C# MVP
blog : http://blogs.developpeur.org/sebmafate
Avatar
Sébastien FERRAND
désolé... après vérification :

string pattern = @"(d{2}/d{2}/d{2,4} d{2}:d{2}:d{2})(.+?)(" +
motCle +")(.+)(?=<br>)";


Sébastien FERRAND a couché sur son écran :
j'essayerai quelquechose du genre :

string pattern = @"^(d{2}/d{2}d{2,4} d{2}:d{2}:d{2}).+?(" + motClé +
@").+?(?!<br>)$"

il faut aussi que tu ajoutes l'option multiligne à l'objet regex...

Séb

Denis avait soumis l'idée :
Bonjour,

Je repose ma question ici car je n'ai pas encore trouver comment faire ce
que je veux.

Mon problème est avec l'utilisations des expressions regulières, je
n'arrive pas à faire ceci :

Je souhaite récupérer dans un MatchCollection toutes les lignes d'un
journal (fichier texte) qui contiennent des mots clés:

Exemple :

24/08/2006 10:20:20 blablabla blablabla errbla 1<br>
24/08/2006 10:20:20 blablabla blablabla bla 2<br>
24/08/2006 10:20:20 blablabla blablabla errbla 3<br>
24/08/2006 10:20:20 blablabla blablabla bla 4<br>
24/08/2006 10:20:20 blablabla blablabla errbla 5<br>

je veux récupérer uniquement les lignes qui contiennent "err"

donc le résultat devrait me donner :

24/08/2006 10:20:20 blablabla blablabla errbla 1
24/08/2006 10:20:20 blablabla blablabla errbla 3
24/08/2006 10:20:20 blablabla blablabla errbla 5

sans les <br>

Quelqu'un peut me dire comment faire , je suis dessus depuis une semaine,
je teste plein de chose et rien ne fonctionne, j'ai mal à la tête, voici le
dernier test, mais cela ne marche pas

strRegPattern = @"(d{2,2}/d{2,2}/d{2,4} d{2,2}:d{2,2}:d{2,2}).+(" +
strMotCle + ").+[^(<)br(>)]";


Où est-ce que je peux trouver des informations sur la logique de cet art,
que sont les RegEx ? Merci d'avance pour vos réponses

Denis





--
---
Sébastien FERRAND
Microsoft Visual C# MVP
blog : http://blogs.developpeur.org/sebmafate
Avatar
Denis
Salut,

Merci pour ton exemple mais cela ne marche pas :-(, il me trouve l'ensemble
!!! soit 1 ligne avec tout le contenu

J'ai modifié car les délimiteurs sont <br> et pas <br/>, ce qui me donne
l'erreur :
Référence à un nom de groupe non défini br

moi je veut uniquement les lignes
<date> <heure> ...<br> (sans le <br>)

Denis

"Sébastien FERRAND" <listes_seb[@]vbmaf.net> a écrit dans le message de
news:
j'essayerai quelquechose du genre :

string pattern = @"^(d{2}/d{2}d{2,4} d{2}:d{2}:d{2}).+?(" + motClé +
@").+?(?!<br>)$"

il faut aussi que tu ajoutes l'option multiligne à l'objet regex...

Séb

Denis avait soumis l'idée :
Bonjour,

Je repose ma question ici car je n'ai pas encore trouver comment faire ce
que je veux.

Mon problème est avec l'utilisations des expressions regulières, je
n'arrive pas à faire ceci :

Je souhaite récupérer dans un MatchCollection toutes les lignes d'un
journal (fichier texte) qui contiennent des mots clés:

Exemple :

24/08/2006 10:20:20 blablabla blablabla errbla 1<br>
24/08/2006 10:20:20 blablabla blablabla bla 2<br>
24/08/2006 10:20:20 blablabla blablabla errbla 3<br>
24/08/2006 10:20:20 blablabla blablabla bla 4<br>
24/08/2006 10:20:20 blablabla blablabla errbla 5<br>

je veux récupérer uniquement les lignes qui contiennent "err"

donc le résultat devrait me donner :

24/08/2006 10:20:20 blablabla blablabla errbla 1
24/08/2006 10:20:20 blablabla blablabla errbla 3
24/08/2006 10:20:20 blablabla blablabla errbla 5

sans les <br>

Quelqu'un peut me dire comment faire , je suis dessus depuis une semaine,
je teste plein de chose et rien ne fonctionne, j'ai mal à la tête, voici
le dernier test, mais cela ne marche pas

strRegPattern = @"(d{2,2}/d{2,2}/d{2,4} d{2,2}:d{2,2}:d{2,2}).+(" +
strMotCle + ").+[^(<)br(>)]";


Où est-ce que je peux trouver des informations sur la logique de cet art,
que sont les RegEx ? Merci d'avance pour vos réponses

Denis



--
---
Sébastien FERRAND
Microsoft Visual C# MVP
blog : http://blogs.developpeur.org/sebmafate




Avatar
Denis
Merci,

Il ne fonctionne pas car, il me trouve 1 ligne avec le contenu intégral du
texte de départ.

Denis

"Sébastien FERRAND" <listes_seb[@]vbmaf.net> a écrit dans le message de
news:
désolé... après vérification :

string pattern = @"(d{2}/d{2}/d{2,4} d{2}:d{2}:d{2})(.+?)(" +
motCle +")(.+)(?=<br>)";


Sébastien FERRAND a couché sur son écran :
j'essayerai quelquechose du genre :

string pattern = @"^(d{2}/d{2}d{2,4} d{2}:d{2}:d{2}).+?(" + motClé
+ @").+?(?!<br>)$"

il faut aussi que tu ajoutes l'option multiligne à l'objet regex...

Séb

Denis avait soumis l'idée :
Bonjour,

Je repose ma question ici car je n'ai pas encore trouver comment faire
ce que je veux.

Mon problème est avec l'utilisations des expressions regulières, je
n'arrive pas à faire ceci :

Je souhaite récupérer dans un MatchCollection toutes les lignes d'un
journal (fichier texte) qui contiennent des mots clés:

Exemple :

24/08/2006 10:20:20 blablabla blablabla errbla 1<br>
24/08/2006 10:20:20 blablabla blablabla bla 2<br>
24/08/2006 10:20:20 blablabla blablabla errbla 3<br>
24/08/2006 10:20:20 blablabla blablabla bla 4<br>
24/08/2006 10:20:20 blablabla blablabla errbla 5<br>

je veux récupérer uniquement les lignes qui contiennent "err"

donc le résultat devrait me donner :

24/08/2006 10:20:20 blablabla blablabla errbla 1
24/08/2006 10:20:20 blablabla blablabla errbla 3
24/08/2006 10:20:20 blablabla blablabla errbla 5

sans les <br>

Quelqu'un peut me dire comment faire , je suis dessus depuis une
semaine, je teste plein de chose et rien ne fonctionne, j'ai mal à la
tête, voici le dernier test, mais cela ne marche pas

strRegPattern = @"(d{2,2}/d{2,2}/d{2,4} d{2,2}:d{2,2}:d{2,2}).+("
+ strMotCle + ").+[^(<)br(>)]";


Où est-ce que je peux trouver des informations sur la logique de cet
art, que sont les RegEx ? Merci d'avance pour vos réponses

Denis





--
---
Sébastien FERRAND
Microsoft Visual C# MVP
blog : http://blogs.developpeur.org/sebmafate