cs_samsih
Messages postés16Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention 8 mai 2004
-
7 juil. 2003 à 12:49
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 2009
-
30 juil. 2003 à 15:42
Bonjour,
je voudrai savoir comment extraire quelques informations de n'import quel fichier log avec formats differents , et les stockées dans une base de données.
exp de ligne de fichier:
et un 2eme exp:
FWIN, 2003/04/28,14:27:30 +2:00 GMT,192.168.0.70:8080,192.168.0.8:1446,TCP (flags:S)
je voudrais extraire Date, Heure, IPsource, IPdest
j'ai pensais à une solution qui est de separer chaque lignes en entités, chaque entité est comprise entre deux blancs ou "," , je dois parcourir la ligne caractere par caractere et stoquer dans un tableau jusqu'a trouver un separateur
le brobleme qui se pose est comment comparer une entité Date avec un format Date( comment savoir que cette entité est une date).
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 7 juil. 2003 à 13:16
vas faloir tout tester, il y a pas d'autre moyen.
vérifier si la longeur est la même, si les "/" ou des "-" sont au bon endroit et si le restant sont des chiffre et pour finir, si le mois et le nombre de jours sont possbile. Pas d'autre moyen de vérifier
vas faloir faire pareil pour l'IP et pour les heures
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 7 juil. 2003 à 14:19
sinon depuis la 1.4, utilise les expressions régulières (aide : regex)
elles permettent de comparer dirrectement la syntaxe de ta chaîne
taChaine.matches(taRegexp)
par exemple pour une date ##/##/####, la regex correspondante est \d{2}/\d{2}/\d{4} (ou \d{1,2}/\d{1,2}/\d{4} si le nombre de caractères est variable pour le jour et le mois)
pour une IP ###.###.###.## : \d{3}\.\d{3}\.\d{3}\.\d{2}
etc..
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 7 juil. 2003 à 17:50
le problème avec un mask, c,est si supposons l'IP est 24.10.10.12 (ok, c'est un exemple) ton mask marchera pas, puisque les "." sont pas au même endroit
pareil pour la date, si l'année est sur 2 ou 4 chiffres et le mois garde ou perd le 0 devant les premier mois (01/01/2003) ou (1/1/2003). Dans ton exemple, il les garde, masi faudrais vérifier pour pas avoir de surprise
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 7 juil. 2003 à 19:05
ok, cetait pas très clair
si je m'en rapelle bien :
dans la syntaxe X{n,m}, on retrouve X entre n et m fois (inclus)
donc par ex \d{2,4} indique 2, 3 ou 4 chiffes successifs
j'sais pas si c'est plus clair... mais avec ce genre de truc, on obtient des masques généraux sans trop de pb
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_samsih
Messages postés16Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention 8 mai 2004 12 juil. 2003 à 16:21
J'ai essayer cette méthode, mais il me génere toujours une erreur au niveau des{ }
existe t'il des logiciels qui génere automatiquement des expreg de n'importe quel mot.
Merci.
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 30 juil. 2003 à 15:42
excuse le retard pour cause de vacances!!
le problème vient plutôt des \
met \\ à la place de \ dans ta chaîne
String test = "032";
String reg = "\\d{2,4}";
System.out.println(test.matches(reg));