Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1815 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C Sharp] Expressions Régulières sous ASP.Net

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C Sharp] Expressions Régulières sous ASP.Net

n°1429498
mkolivier
Posté le 22-08-2006 à 16:30:55  profilanswer
 

Bonjour,
 
J'ai des problèmes pour utiliser les expressions régulières sous C# et ASP.Net2 :
 
je souhaite récuperer des lignes contenant un mot clé dans un texte (journal)
 
Exemple :
2006/08/22 11:11:12 bla bla bla bla err bla bla1<br>
2006/08/22 11:11:12 bla bla bla bla bla bla2<br>
2006/08/22 11:11:12 bla bla bla bla bla bla3<br>
2006/08/22 11:11:12 bla bla bla bla err bla bla4<br>
 
je cherche lesl ignes qui ont "err"
 
le résultat devra me donner :
2006/08/22 11:11:12 bla bla bla bla err bla bla1<br>
2006/08/22 11:11:12 bla bla bla bla err bla bla4<br>
 
mais je n'y arrive pas, j'ai cherché et impossible de réussir, j'ai testé cela :
(\\d{2,4}/\\d{2,2}/\\d{2,2} \\d{2,2}:\\d{2,2}:\\d{2,2}).+(err).+(<br> )
 
Cela ne marche pas
 
Quelqu'un peut-il me dire comment faire ?
 
Merci d'avance
 
mkolivier

mood
Publicité
Posté le 22-08-2006 à 16:30:55  profilanswer
 

n°1430755
hassbak
Posté le 24-08-2006 à 16:00:14  profilanswer
 

Je pense pas qu'une expression régulière soit bonne dans ce cas.
 
Pourquoi ne pas te ballader dans le texte ligne par ligne, et pour chaque ligne tester si elle contient "err" avec IndexOf ?

n°1430757
mkolivier
Posté le 24-08-2006 à 16:03:43  profilanswer
 

Je le fais déjà et je souhaiterai améloirerm on code c'est pour cela

n°1430760
MagicBuzz
Posté le 24-08-2006 à 16:08:04  profilanswer
 

"2006/08/22 11:11:12 "
=> taille fixe : 20 caractères
 
donc tu fais, pour chaque ligne :

Code :
  1. foreach (string l in lignes)
  2.       {
  3.            if (l.Substring(20, 3) == "err" )
  4.            {
  5.                  MessageBox.Show(l);
  6.            }
  7.       }


 
Je ne vois pas comment tu peux optimiser plus.


Message édité par MagicBuzz le 24-08-2006 à 16:08:36
n°1430820
mkolivier
Posté le 24-08-2006 à 17:02:40  profilanswer
 

je laisse tomber, c'est trop compliqué, je n'y arriverai jamais, cela fait 15 jours que je teste et bon tant pis

n°1430823
MagicBuzz
Posté le 24-08-2006 à 17:04:33  profilanswer
 

essaie mon truc... de toute façon, comme l'a dit hassbak, les regexp ne sont pas du tout adaptées à ton problème

n°1430844
mkolivier
Posté le 24-08-2006 à 17:18:28  profilanswer
 

Et pour quelles raisons un RegEx ne pourrait pas être utilisé ? on s'en sert bien pour parser du texte, donc je ne vois pas trop...

n°1430861
MagicBuzz
Posté le 24-08-2006 à 17:23:23  profilanswer
 

on n'a pas dit qu'il ne pouvait pas être utilisé, on a dit qu'il n'était pas adapté.
 
c'est comme vouloir manger des petits pois avec une spatule. ça marche, c'est pas pas top adapté.
 
ici, tout ce qui est devant "err" a une taille fixe, donc il est à la fois plus simple et plus rapide de regarder directement à l'offset et regarder ce qu'on y trouve, que de faire une regexp qui, quelquesoit ses perfs, fa se faire chier à parcourir tout le fichier sans aucun repère valable.

n°1430863
MagicBuzz
Posté le 24-08-2006 à 17:24:27  profilanswer
 

ps: au départ, je croyais que ton "err" était en début de ligne, après la date (comme dans tout bon journal de log). mais en fait, c'et pas le cas (c'est ballo)
 
du coup indexof ou regexp ne font en effet aucune différence.

n°1430868
mkolivier
Posté le 24-08-2006 à 17:26:28  profilanswer
 

euh je crois que mon exmple vous a induit en erreur, car err peut se trouver n'importe où sur la ligne, du mois, après la date et heure mais avant le <br>:
 
donc moi je veux récupérer des items :
<date> <heure> ...err......<br>
(sans le <br> )


Message édité par mkolivier le 24-08-2006 à 17:27:40
mood
Publicité
Posté le 24-08-2006 à 17:26:28  profilanswer
 

n°1430876
MagicBuzz
Posté le 24-08-2006 à 17:29:46  profilanswer
 

yes, je m'en suis rendu compte en regardant à nouveau ton exemple.
 
pour la regexp, à priori, t'as bien beaucoup de () qui servent à rien, et tu n'as pas celles qui sont importantes... vire-les toutes, et met des () autour de toute la chaîne, afin de récupérer en match0 la ligne entière (met pas le <br> dans les () si t'en veut pas)
 
de mémoire, ça marche comme ça...


Message édité par MagicBuzz le 24-08-2006 à 17:29:59
n°1430877
mkolivier
Posté le 24-08-2006 à 17:29:59  profilanswer
 

euh je prends err pour erreur ou error, ou err car (ce n'est pas moi qui est programmé nos logs) mais je dois les vérifier, donc je checke uniquement les lignes qui contiennent err, sinon evidemment j'aurai formaté les lignes de nos logs pour répondre à une syntaxe cohérente ;-)

n°1430880
mkolivier
Posté le 24-08-2006 à 17:31:39  profilanswer
 

et puis en ce moment nous n'avons pas bcp d'erreurs donc pourquoi boucler sur des millers de lignes au lieu de chercher uniquement les quelques lignes en erreur


Message édité par mkolivier le 24-08-2006 à 17:31:59
n°1430917
hassbak
Posté le 24-08-2006 à 18:14:11  profilanswer
 

parceque pour chercher les quelques lignes en erreur, faut boucler sur toutes les lignes, c'est un peu logique nan ?
 

n°1430932
mkolivier
Posté le 24-08-2006 à 18:26:53  profilanswer
 

non evidemment mais je voulais le faire en RegEx, tant pis


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C Sharp] Expressions Régulières sous ASP.Net

 

Sujets relatifs
[C#.NET] Compresser plusieurs fichiers avec GZipStream, help[C#.Net] Bouton pour télécharger un fichier
[Resolu][C#.NET] Appel methode static impossible ?[C#.Net] A la recherche d'un outil de charting (graphiques)
[C#.NET] Remplir un DataGrid a partir d'un répertoire, help please ![Résolu] [C#.Net] Passer un argument à partir d'une page Web
[C#.NET] Remplir une listview de fichiers d'un repertoire[Résolu] [C#.Net] FileUpload ne marche avec certains types de fichiers
(VB.Net)Formatage au moment de la frappe dans un DataGridViewprojet C#/.NET fonction d'impression de page
Plus de sujets relatifs à : [C Sharp] Expressions Régulières sous ASP.Net


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR