begin process at 2012 02 13 02:34:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Regex "sauf cette expression"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Regex "sauf cette expression"

vendredi 15 septembre 2006 à 09:19:24 | Regex "sauf cette expression"

mentral

Bonjour.

Le problème : je dois isoler au sein d'un fichier "template" des structures de type :

<balise> ... {instruction template} ... </balise>

sachant (et c'est là tout le problème) que les premiers trois petits points avant les accolades peuvent contenir de tout sauf l'expression <balise>. Le but est de boucler sur une instruction du type, par exemple :

<td><em>champ 1 : {afficher le contenu en bouclant sur td}</em></td>

en répétant tout le contenu situé entre les balises <td> et </td> (à la TinyButStrong, pour ceux qui connaissent...) mais en se limitant à l'encadrement <td> de premier niveau évidemment (on se penchera sur le multi niveau plus tard). Au passage, j'ai trouvé le code source de TBS un peu obscur sur ce point, avec des tonnes de méthodes / attributs persos dans la classe. Pourquoi pas des regex ?

Solution actuelle : regex de type
#<([a-z]+)>.*?\{loop_\1([0-9]) \$([\.a-z]+)\}.*?</\1>#
(ne perdez pas de temps sur ce qu'il y a entre les accolades, c'est une instruction perso qui marche bien ;-).
Après les accolades, l'expression .*? fonctionne bien car elle s'arrête à la première balise </balise> rencontrée. En revanche, la même expression devant les accolades ne fonctionne pas de la même façon (malgré le point d'interrogation) car elle peut me renvoyer du texte contenant la balise <balise> AU CAS LIMITE OU LES ACCOLADES SONT ENTOUREES DE PLUSIEURS ENCADREMENTS DE <balise>. Il faut donc retraiter ce qu'elle me renvoie.

Solution recherchée : une regex qui puisse à la place du premier .*? rechercher "toute chaîne ne contenant pas l'expression <balise>". Si l'on prend une instruction du type [^abc], elle recherchera tout caractère sauf a, b ou c. Je cherche un moyen d'écrire le même type d'expression mais qui s'applique à une chaîne de caractère et non à simplement un caractère. Ecrire [^<balise>]* par exemple ne fonctionne pas car cela ne reconnaîtrait pas l'exemple du dessus, "champ 1" contenant un a.

Voilà, désolé pour ce post-fleuve. J'ai bouffé de la doc sur les regex, testé des tas de trus, mais n'ai pas trouvé d'instruction qui marche et qui permette directement cela.

Toute réponse / remarque / commentaire est bienvenu.

[ Mentral ]


Cette discussion est classée dans : type, expression, regex, instruction, accolades


Répondre à ce message

Sujets en rapport avec ce message

expression régulière regex [ par fyav ] j'ai une variable ex: $mavar="coucoule monde%topsalut cherie%%topcomment ça va";et je souhaites enlever tout ce qui est entre "%top" et "%%top"sachant Probleme pagination sur script recherche [ par McGyver59 ] Bonjour Je reviens vers vous car j'ai un soucis pour faire une pagination. Chaque fois que je met un code de pagination cela m'affiche plus de 5000 p insertion dans la base [ par maha1987 ] salut tout le monde, j'ai un code php d'insertion dans une base de données [code=php]<?php require '../database.php'; $notice =""; $nv_type=""; sessio Convertir un nombre en expression literrale en PL/SQL [ par ThReM ] bonjour je cherche une source pour convertir un nombre en ce meme nombre mais ecris en toutes lettre (99 ==> quatre vingt dix neuf) en langage PL/SQL. Probleme url [ par yannj1988 ] J'utilise une version modifier de PHPMYADMIN et dans le fichier config on me demande l'url absolute.Quand je m'est une url du type http://127.0.0.1/ph Expressions régulieres [ par Nini ] Trouvez l'expression régulière (Syntaxe basée sur le PHP) et entrez la ci-dessous (en suivant l'exemple).Cette regex doit extraire le texte et le cont Astuce du jour 04/12/2002 [ par SmallToad ] Aujourd'hui, l'astuce du jour est l'utilisation de $_FILES qui est fort utile. Il sert à récupérer des information sur le fichier $fichier qu'il a upl Trouver le content-type d'un fichier ? [ par mehdibou ] Voilà, j'emmerais trouver le Content-type d'un fichier sur mon serveur, c koi la fonction ?Merci d'avance :)@+ et bonn' prog' et bonnes fêtes :)Mehdi Equivalent du memo [ par DarkSchneider ] Bonjour, J'aurai aimé savoir quel était l'équivalent du type mémo en php sous mysql. Par type mémo, je m'explique, par exemple sous access, lorsque da lien du type nom.php?id=x [ par apego ] Bonjour,Je débute et je n'arrive pas à cerber ce que représentent les caractères qui suivent les url ...... je m'explique :Pour ce lien :http://www.ph


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,841 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales