[Expression reguliere] probleme de parsing de pseudo url

probleme de parsing de pseudo url [Expression reguliere] - PHP - Programmation

Marsh Posté le 20-02-2005 à 16:21:00    

Bonjour. je suis entrain de monter un systeme de pseudo code et j'aimerais  
parser dans un premier temps une url du type:  
 

Code :
  1. ici


je veux recuperer  

Code :
  1. http://monsite.com et 
  2. ici


 
pour le moment j'en suis la:  
 

Code :
  1. \[url\=(http://[^]]+)\]


 
ce qui me permet de recuperer deja l'adresse du site donc  

Code :
  1. http://monsite.com


 
mainetant c'est là que ça ce complique. je veux recupéré le "ici"
 
alors j'ai fait ça:
 

Code :
  1. \[url\=(http://[^]]+)\](.+)\[/url\]


 
seulement si il n'y a qu'une url a parser dans le textecela marche au poil. mais s'il yen a plusieur comme par exemple:
 

Code :
  1. cool cool cool fun2


et bien je vais recupérer ça:
 

Code :
  1. http://deepnight.net


et  

Code :
  1. cool[/url] cool [url=http://pllune.net]fun2


 
ce qui n'est pas la chaine voulu. alors la question est la suivante. comment puis je faire pour pourvoir recuperer mes deux adresses séparement?
et que je puisse obtenir ça:
 

Code :
  1. http://deepnight.net
  2. cool
  3. http://pllune.net
  4. fun2


 
voila merci d'avance.


Message édité par Lunatik3 le 20-02-2005 à 17:51:02
Reply

Marsh Posté le 20-02-2005 à 16:21:00   

Reply

Marsh Posté le 20-02-2005 à 17:54:24    

j'ai avancé. je reussi a recupéré ce que je veux: avec ça:

Code :
  1. (\[url\=(http://[^]]+)\]([^]]*)\[/[^]]+\])


donc avec ça:  

Code :
  1. "cool cool coolre fun2 ouai"


j'obtiens ça:

Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [0] => cool
  6.             [1] => http://deepnight.net
  7.             [2] => cool
  8.         )
  9.     [1] => Array
  10.         (
  11.             [0] => fun2
  12.             [1] => http://pllune.net
  13.             [2] => fun2
  14.         )
  15. )


 
le probleme est que quand il y a des balises imbriqué comme la:
 

Code :
  1. cool


et bien je ne recupere rien du tout

Reply

Marsh Posté le 20-02-2005 à 18:07:15    

Yahoo!!! aprés 6h de rechercge intensive j'arrive enfin a un resultat:

Code :
  1. (\[b\](\[[^]]*\])*([^]]*)\[/[^]]+\])


ce petit bout de patterne permet de recuperer le texte contenu dans la balise b et meme si celle ci contient des balises impriques.
 
Ouf j'aurais fait un topic tout seule. desole

Reply

Marsh Posté le 20-02-2005 à 19:06:23    

euh en faite je me suis planté. mon expression n'est pas pratique car j'aimerais recuperer les balises qui peuvent ce trouver a l'interieur de ma balise

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed