RegExp - Empecher de prendre certains patterns - PHP - Programmation
Marsh Posté le 26-04-2006 à 15:32:15
oui il faut que tu utilises une "assertion avant négative"!
Une page de doc qui sera plus claire que mes explications
http://www.expreg.com/assertion2.php
edit: dans ton cas ça fait:
<a href="(?!(http|ftp|mailto))([^"]+)">([^<]+)<\/a> |
Marsh Posté le 26-04-2006 à 16:36:50
ok merci ca fonctionne ... dans mon logiciel de test de regexp
ereg_replace lui n'a pas l'air d'apprécier tres fort :S
Marsh Posté le 26-04-2006 à 16:56:08
ok javais essaye comme ca juste en le remplacant le nom
ca ne marchait plus du tout , jai ete voir qq exemple et jai rajoute \ au debut et a la fin maintenant ca marche nikel
merci
au fait pq faut til c fameux \
Marsh Posté le 26-04-2006 à 17:12:33
c'est pas forcément \ tu peux mettre n'importe quel caractère.
En fait tu définis ton masque en le délimitant par deux caractères identiques.
Personellement j'utilise plutôt le slash, certains préfèrent #,@ ou encore %
Marsh Posté le 26-04-2006 à 17:59:22
je comprends pa vraiment
pourquoi delimiter ? la fin de la chaine (\0) et le debut ne suffisent-ils pas ?
et comment ce fait-il que ce caractere soit variable ? comment fait til pour le detecter alors ?
Marsh Posté le 26-04-2006 à 19:25:10
Le premier caractere définit le délimiteurs de masque
Le masque sera donc compris entre le premier caractere et sa prochaine occurence non despecialisée (non précédée de \)
Suite a cette 2eme occurence se trouve les options de recherche : case sensitive (i), multilignes (m), ungreedy (u), \n\r inclus dans . avec l'option s etc ...
Marsh Posté le 27-04-2006 à 11:46:46
ok merci pour lexplication
un ptit probleme cependant,
si jessaie de remplacer le code suivant
<a href="productandservices">back to product & services</a>
regexp: preg_replace('/<a href="(?!(http|mailto))([^"]+)">([^<]+)<\/a>/'
cela ne fonctionne par a cause du & .... pourquoi ? il y a pourtant un [^<]+ qui devrait uniquement se terminer qd on rencontre le <
Marsh Posté le 26-04-2006 à 14:54:47
j'ai un regexp comme ceci:
ce qui me permet de requiperer tous les liens d'un site. mais je voudrais recupere ceux qui ne commencent pa par http:// ou mailto: ou ftp:// c possible ?
Message édité par red faction le 26-04-2006 à 14:58:43