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