Bonjour,
J'ai des codes qui peuvent etre de cette forme :
T00221-001->M1
T00221-005-<J
T00541-004-*
xsxsxsx-003-
T00648-004-#005-<A
scfed-007-006-
abc1245-004->S005-+A512-#452-*
Il faut que j'arrive a récupérer la partie ayant les 3 derniers chiffres (ceux en gras).
Comment sont formés ces codes :
- une ou plusieurs lettres/chiffres (longueur variable)
- un tiret
- 3 chiffres (ceux q je veus recuperer s'il n'y en a pas plus loin par 3
- un tiret
- zero ou un symbole qui peut etre <, >, +, * ou # (peut etre absent)
- zero ou plusieurs lettres
Le code peut s'arreter la ou bien continuer en gardant la base précedente ms en rajoutant les 4 dernieres etapes :
- 3 chiffres (ceux q je veus recuperer s'il n'y en a pas plus loin par 3
- un tiret
- zero ou un symbole qui peut etre <, >, +, * ou # (peut etre absent)
- zero ou plusieurs lettres
Et cela peut ce reproduire plusieurs fois.
Ceux que je veux récupérer, cest la derniere fois qu'il y a les 3 chiffres.
Voila la regexp que j'ai fait :
Mais j'ai ce message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $gene = 'T00648-004-#[b]005[/b]-<A'; if ($gene =~ /(.*)(-)([0-9]{3})([a-z]?)(-)([<->*\#])?)(.*)/) { print "ok"; } else { print "no ok"; } print "1 : $1<br>2 : $2<br>3 : $3<br>4 : $4<br>5 : $5<br>6 : $6<br>7 : $7";
Par contre, ce que je ne comprend pas, cest que normalement, jai un formulaire, et ce n'est qu'a la soumission de ce formulaire que j'utitlse ma regexp, donc au 1er affichage, cest sur, ma regexp ne peut pas fonctionner puisque la variable $gene n'a pas encore de valeur.../(.*)(-)([0-9]{3})([a-z]?)(-)([<->*\#])?)(.*)/: unmatched () in regexp at /Projects/aaa/fiche.cgi line 2266.
[Fri Jan 27 09:32:48 2006] [error] [client xxx.xxx.xx.x] Premature end of script headers: /aaa/fiche.cgi
Est ce que quelqu'un peut m'aider?
Partager