Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2620 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  RegExp - Empecher de prendre certains patterns

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

RegExp - Empecher de prendre certains patterns

n°1354370
red factio​n
Posté le 26-04-2006 à 14:54:47  profilanswer
 

j'ai un regexp comme ceci:  
 

Code :
  1. <a href="([^"]+)">([^<]+)</a>


 
 
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
mood
Publicité
Posté le 26-04-2006 à 14:54:47  profilanswer
 

n°1354407
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-04-2006 à 15:32:15  profilanswer
 

oui il faut que tu utilises une "assertion avant négative"!
Une page de doc qui sera plus claire que mes explications :o
http://www.expreg.com/assertion2.php
edit: dans ton cas ça fait:

<a href="(?!(http|ftp|mailto))([^"]+)">([^<]+)<\/a>


Message édité par anapajari le 26-04-2006 à 15:37:32
n°1354484
red factio​n
Posté le 26-04-2006 à 16:36:50  profilanswer
 

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

n°1354494
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-04-2006 à 16:42:03  profilanswer
 

preg_replace

n°1354519
red factio​n
Posté le 26-04-2006 à 16:56:08  profilanswer
 

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  \ :??:

n°1354539
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-04-2006 à 17:12:33  profilanswer
 

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 %

n°1354591
red factio​n
Posté le 26-04-2006 à 17:59:22  profilanswer
 

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 ?
 

n°1354671
afbilou
pouet your life
Posté le 26-04-2006 à 19:25:10  profilanswer
 

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 ...


Message édité par afbilou le 26-04-2006 à 19:26:26
n°1355011
red factio​n
Posté le 27-04-2006 à 11:46:46  profilanswer
 

ok merci pour lexplication
 
un ptit probleme cependant,
 
si jessaie de remplacer le code suivant  
<a href="productandservices">back to product &amp; services</a>
 
regexp: preg_replace('/<a href="(?!(http|mailto))([^"]+)">([^<]+)<\/a>/'
 
cela ne fonctionne par a cause du &amp; .... pourquoi ? il y a pourtant un [^<]+ qui devrait uniquement se terminer qd on rencontre le <


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  RegExp - Empecher de prendre certains patterns

 

Sujets relatifs
"windows.h - 'empecher' fermeture fenetre" [opengl]BDD simple (tableau 10 colonnes) > comment m'y prendre ?
[GetXMLTree] Problème de récupération de certains flux RSSSegmenter un texte, comment d'y prendre ?
Comment empêcher la récupération d'une image sur une page web.Empecher un processus de se lancer
Prendre la main depuis un formulaire Access?[résolu] strtok, ou comment prendre ce qu'il ya apres un espace
Empecher de visualiser un code source de script PERLPatterns de conception
Plus de sujets relatifs à : RegExp - Empecher de prendre certains patterns


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR