Bonjour,
J'aimerais trouver les chaines de le forme:
== chaine ==
mais pas:
== chaine ===
Comment préciser que je veux à droite le même nombre de caractères qu'à gauche?
Merci
Bonjour,
J'aimerais trouver les chaines de le forme:
== chaine ==
mais pas:
== chaine ===
Comment préciser que je veux à droite le même nombre de caractères qu'à gauche?
Merci
Un truc comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $char = '=='; $chaine = '== chaine =='; if ( preg_match( '#^('.$char.') .* \1$#', $chaine ) ) { echo 'ok'; }
Re,
En fait le \1 reproduit la première parenthèse capturante, mais rien n'empêche d'avoir == chaine === qui fonctionne, puisque dans mon cas, il n'y a pas de fin de ligne délimitée par $.
Du coup j'ai fait (qui semble fonctionner):
Je veux grâce à ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $text = preg_replace_callback('`(\=+) ([^\n]+?) \1([^=]{1}|$)`', 'plan', $text);
- récupérer une chaine sur une seule ligne
- empêcher en fin de motif d'avoir des = en trop, cad au moins un caratère quelconque qui ne soit pas =, ou arriver à la fin de ma chaine complète.
Est-ce que cela semble propre (notamment les +? pour cette histoire de "gourmandise" que je n'ai jamais trop compris)?
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager