#1 Le 08/06/2010, à 10:15
- Askelon
[Résolu] [PHP] Regexp et titres Mediawiki...
Salut à tous !
Je suis actuellement sur un petit projet pour lequel je dois détecter la présence dans ma page de titres «mediawiki-like» :
== titre ==
J'ai le code suivant qui fait cela correctement, ou presque...
preg_match_all("((\=+)(.*?)(\=+))",$this->text,$matches);
Où $this-> est mon texte à parser.
Mais... si j'ai par exemple le code suivant dans mon texte :
[url =http://forum.ubuntu-fr.org/search.php?action=show_24h]Messages récents[/url]
L'expression régulière fonctionne me trouve le «titre» suivant :
=http://forum.ubuntu-fr.org/search.php?action=
la seule solution que j'ai trouvé est... de n'utiliser que des == et suivants (===, ====, =====, etc), mais c'est quand même bien moins pratique qu'avoir une regexp qui fonctionne parfaitement...
Quelqu'un aurait une idée de comment régler ça ?
Merci
Dernière modification par Askelon (Le 08/06/2010, à 12:25)
Hors ligne
#2 Le 08/06/2010, à 11:29
- iuchiban
Re : [Résolu] [PHP] Regexp et titres Mediawiki...
Salut,
C'est le problème des regexp, il te faut l'unicité des expressions à rechercher.
Tu peux peut être utiliser une expression forçant un espace après le premier groupe de = et avant le deuxième groupe de =
= Titre = fonctionnera
[url =http://forum.ubuntu-fr.org/search.php?action=show_24h ne fonctionnera pas
Ou bien tu rajoutes :
[= en début de ligne][Texte][= en fin de ligne] => balise
^\=+ Texte \=$ en bash par exemple
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#3 Le 08/06/2010, à 12:27
- Askelon
Re : [Résolu] [PHP] Regexp et titres Mediawiki...
Résolu !
Je ne sais pas pourquoi cela ne marchait pas quand j'ai essayé hier soir...
((\=+ )(.*?)( \=+))
Résout le problème. Merci iuchiban
Hors ligne
#4 Le 08/06/2010, à 13:40
- iuchiban
Re : [Résolu] [PHP] Regexp et titres Mediawiki...
Mais il faut faire attention à bien mettre des espaces.
la deuxième proposition (vérification début / fin de ligne) à l'intérêt de marcher que l'on mette des espaces ou non.
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#5 Le 08/06/2010, à 16:15
- Askelon
Re : [Résolu] [PHP] Regexp et titres Mediawiki...
Idéalement j'aimerais utiliser la détection début fin de ligne, oui, mais... non, en fait. Le chaine que je teste est en fait un contenu très long, un article complet... du coup cette détection ne fonctionne pas
Hors ligne