begin process at 2010 02 10 14:20:38
  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 Expression PCRE ... [ par LocalStone ] 'soir ! Voilà, je cherche à parser les attributs d'une balise XML. C'est assez simple, grâce au pattern suivant : $pattern = '/(.+?)=("|\')(.+?)(\\2)/ Popups zoom type Skyblog [ par AleXsItsMe ] Bonjour,Je voudrais savoir comment faire pour réaliser un zoom d'image en popups du même genre que dans les skyblog.MerciTilix menu PHP [ par larbi1980 ] Salut,voila jaimerais faire un menu en php a partir dune requete SQL ainsi mon menu safficheras sur mon site Voici ma requete :$req = "SELECT id_type, insertion dans champs mysql type text impossible! [ par plasticode ] Salut.voilà mon affaire: je fais un formulaire d'insertion de données en phpdans lequel il y une zone "text area" servant à inserer des textes dans la Le filtre ne fonctionne pas [ par Joleroy ] Salut a tous!J ai cree une page appelé Kits.php qu j appelle par Kit.php?tipekit=type_du_kitVoici son code:$type=$_GET['typekit'];$connect = mysql_con REGEX [ par Swop ] Bonjou...Je réalise un script php pour récuperer ses valeurs possibles dans un textaréo, saisi par l'utilisateur.J'utilise donc un Regex qui me renver Comment realiser ce type de sondage ? [ par apz ] Salut,j'aimerais bien avoir un secondage de ce type :la question : Quelles sont vos loisires ?la reponse sera poste dans un formulaire compose d'un se input type file et récupération de la variable HTTP [ par lineb76 ] Bonjour !J'ai un gros pb pour récupérer ma variable fichier que je passe via un Pour récupérer mes variables je suis obligée de passer par $HTTP_POST_ submit perso [ par asmLooping ] Bonjour, ce thème est récurant, mais aucuns trucs ne marchent, donc si vous avez des idées...Je fais une page php, et pour se loguer, ma page prend un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,281 sec (3)

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