Bonjour @ tous,

J'utilise les expression régulière afin de parsé un fichier texte. Commençons par un extrait du fichier :
INVITE sip:aamj@10.193.137.10 SIP/2.0
Route: <sip:10.193.137.10;lr>
Via: SIP/2.0/UDP 10.193.137.17:5060;branch=z9hG4bKfci84h186phc7mra04dvhno;rport
From: <sip:coco@toto.fr>;tag=ud284h4bflhc6vg904dv
To: <sip:aamj@10.193.137.10>
Mon but est de repérer la première ligne du fichier qui est différente des autres. En effet elle est toujours de cette forme :
* sip:*@Adresse_IP[: Port] SIP/2.0
J'ai entre crochet port car il falcutaltif. (l'espace n'est que pour éviter l'émoticone constitué de : et de P)
Si on observe les autres lignes, elles sont du genre :
*: *
Et le Hic c'est que ma première ligne peut se retrouver en deuxième, troixième, ou xième lignes.

Donc je me suis construit une expression régulière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(?!SIP/2.0)[a-zA-Z]* [0-9a-zA-Z]*:[a-zA-Z]*\\@([0-9]{1,3}\\.){3}[0-9]{1,3}:[0-9]* SIP/2.0
Bon ok il y a certainement mieux, mais je pensais qu'elle marchait tout le temps, hors elle ne fonctionne pas avec le texte que je vous ai donné.

Pour comparé, avec le texte suivant, elle fonctionne :
INVITE sip:service@127.0.0.1:5060 SIP/2.0
Via: SIP/2.0/UDP 127.0.0.1:5061
From: sipp <sip:sipp@127.0.0.1:5061>;tag=1
To: sut <sip:service@127.0.0.1:5060>
Call-ID: 1.3292.127.0.0.1@sipp.call.id
La grande différence se situe au niveau port facultatif, qui est présent dans ce fichier. Donc je pense qu'il faut que je dise dans mon expression, juste après l'adresse IP "([0-9]{1,3}\\.){3}[0-9]{1,3}" que ":[0-9]*" peut être facultatif.

Je vais chercher demain parce que là je vais rentrer chez moi , mais si vous avez la solution n'hésitez pas à me la donner, cela fera un heureux.

Ensuite, est ce que les pro en regexp pourrait me dire s'il y a mieux ou si l'expression marchera tout le temps ?

Merci par avance pour votre aide, et pour m'avoir lu.

Ced600.