Bonjour,
Je suis en VB2008 express, et j'ai une difficulté avec une expression régulière.
Ma chaine de départ :
Je cherche a isoler dans un premier temps le chiffre entre parenthèse (timestamp), puis les deux nombres entiers "2122690531" et "540794519", et enfin la chaine de caractères jusqu'a la fermeture de la balise "\/a".
Code : Sélectionner tout - Visualiser dans une fenêtre à part (1193258686)[Wed Oct 24 22:44:46 2007] \aPC -1 Zenne:Zenne\/a says to the guild,"\aITEM 2122690531 540794519:Poignées rapides flamboyantes\/a\aITEM 379234030 -889112265:Pierre d'Ayr lacérante flamboyante\/a\aITEM -914484718 1393661558:Poignée vampirique flamboyante\/a"
Mon premier jet de regex est le suivant :
RC'est pas mauvais, mais ce satané opérateur est trop gourmand, et je me retrouve avec en chaine de caractères pour le 4eme argument toute la fin de la chaine a partir du 1er "Poignées...".
Code : Sélectionner tout - Visualiser dans une fenêtre à part egex = New Regex("^\((\d+)\).+aITEM ([+-]?\d+) ([+-]?\d+):(.+)\\/a")
J'ai d'abord chercher a limiter mon dernier operateur, ce qui n'est pas evident. Mais en fait, j'ai surtout un Timestamp, puis un nombre n d'une expression "\aITEM.....\/a". Du coup, je bloque sur la regex et le moyen de l'exploiter pour retrouver mes petits en VB.
Actuellement je fais un simple :
Toute aide est la bienvenue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 M = ItemRegex.Match(sLine) If M.Success Then sTemp = M.Groups(1).Value & ";" & M.Groups(2).Value & ";" & M.Groups(3).Value & ";" & M.Groups(4).Value ....
Partager