|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 4 ![]() |
Bonjour,
Je voulais vous demander une aide précieuse pour l'utilisation de regex en PHP voici le pattern sur lequel je travail: $pattern = "([a-ZA-z0-9])\${{$subject}}([a-ZA-z0-9])"; et voici les 2 type de chaines dans lesquels je recherche grace à ce pattern : aname-${version}.zip aname-${version}-aname.zip J'obtiens l'erreur suivante : preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Unknown modifier '$' Je conclue que mon pattern est faux Quelqu'un pourrait me venir en aide afin que le pattern utilisé fonctionne avec le type de chaine que je souaite trouver Merci d'avance |
|
|
00
|
|
|
#2 |
|
Inactif
Inscription : mai 2008 Messages : 179 ![]() |
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 4 ![]() |
Merci, mais les example peuvent aussi marcher sans ce caractere
De plus, pour tester, j'ai quand meme mis le caracter '/', mais l'erreur devient: Unknown modifier '/' Any other suggestions ? |
|
|
00
|
|
|
#4 | |
|
Inactif
Inscription : mai 2008 Messages : 179 ![]() |
Non. Il en faut un, pas forcément / mais il en faut un.
Citation:
Au passage, t'es censé échapper les { et les } il me semble, car ce sont des caractères spéciaux. |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 4 ![]() |
Oui effectivement il en faut 1: si je mets les parentheses, ca passe
pour ce qui est des accolades, elles sont échappés par la double accolade pattern: ([a-zA-Z0-9]-\${{$subject}}-[A-zA-Z0-9]) masque généré: ([a-zA-Z0-9]-${version}-[A-zA-Z0-9]) je veux trouver ceci : aname-${version}.zip aname-${version}-aname.zip |
|
|
00
|
|
|
#6 |
|
Inactif
Inscription : mai 2008 Messages : 179 ![]() |
Une double accolade n'échappe pas une accolade. Il faut échapper avec un backslash.
Et c'est une très mauvaise idée d'englober sa regexp par des parenthèses, et c'est ça qui te fait planter la tienne (parce que tu en as dans l'expression même). |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 4 ![]() |
Tres bien, en prenant compte de tes conseils, voici:
pattern: "/[a-zA-Z0-9]-\$\{$subject\}-[A-zA-Z0-9]/" masque : "/[a-zA-Z0-9]-$\{version\}-[A-zA-Z0-9]/" j'ai plus d'erreur, mais néanmoins le type de chaine que je recherche n'est pas trouvée Il doit manquer quelquechose dans la définition du pattern ?? |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Développeur informatique Inscription : mai 2008 Messages : 91 ![]() |
Code :
$pattern = "([a-zA-Z0-9]*)-\$\{".$version."\}([a-zA-Z0-9\.]*)";
L'étoile pour la possibilité de répétition du caractère, et j'ai rajouté le \. pour le "." du zip. sinon sans le zip ben c'est : Code :
$pattern = "([a-zA-Z0-9]*)-\$\{".$version."\}([a-zA-Z0-9]*)";
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com