ti pb sur exp reguliere

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

achaternet
WRInaute impliqué
WRInaute impliqué
 
Messages: 256
Inscription: Mar Fév 11, 2003 12:44

ti pb sur exp reguliere

Message le Jeu Avr 01, 2004 14:20

bonjour,

je souhaite selectionner un block commençant par - [ et finissant par ]

comment dois- je ecrire ma regle?

j ai essayé ça ^-.[(.*).]$
, mais marche poa.

merci de votre aide ;)


George Abitbol
WRInaute accro
WRInaute accro
 
Messages: 1923
Inscription: Ven Juin 06, 2003 7:57

Message le Jeu Avr 01, 2004 14:34

Bonjour,

Ca ne marche pas parce que les crochets sont des caractères ayant une signification particulière pour les expressions régulières. Il faut les échapper si on veut les utiliser comme de simples caractères.

Donc a priori, ce serait quelque chose comme ça :

Code: Tout sélectionner
/^- \[(.*)\]$/


Si c'est en PHP :

Code: Tout sélectionner
<?php
preg_match('/^- \[(.*)\]$/', $ta_chaine, $matches);
echo $matches[1];
?>


http://fr.php.net/preg_match

Fred

pinoc
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 105
Inscription: Jeu Avr 10, 2003 12:48

Message le Jeu Avr 01, 2004 14:48

Franchement, les expressions régulières, c'est un art !!!

achaternet
WRInaute impliqué
WRInaute impliqué
 
Messages: 256
Inscription: Mar Fév 11, 2003 12:44

Message le Jeu Avr 01, 2004 15:31

George Abitbol a écrit:Ca ne marche pas parce que les crochets sont des caractères ayant une signification particulière pour les expressions régulières. Il faut les échapper si on veut les utiliser comme de simples caractères.

Donc a priori, ce serait quelque chose comme ça :

Code: Tout sélectionner
/^- \[(.*)\]$/


Si c'est en PHP :

Code: Tout sélectionner
<?php
preg_match('/^- \[(.*)\]$/', $ta_chaine, $matches);
echo $matches[1];
?>


http://fr.php.net/preg_match

Fred


Merci fred.

i me semblait bi1 qui avait un truc a rajouter pour les caracteres particuliers.

Le - par contre, est il considéré comme tel?

Sinon, j ai pas l impression que le code fonctionne


J ai repris le code php

<?
$tachaine="chou - [ bla bla ] 26:)";
preg_match('/^- \[(.*)\]$/', $ta_chaine, $matches);
echo $matches[1];
?>


et rien s affiche alors que je souhaite ainsi ds cette ex: chou 26:)

Ou es l erreur??

thks


George Abitbol
WRInaute accro
WRInaute accro
 
Messages: 1923
Inscription: Ven Juin 06, 2003 7:57

Message le Jeu Avr 01, 2004 16:25

Euh... je comprends plus trop, là... Tu dis vouloir sélectionner le bloc compris entre - [ et ]. Donc dans ton exemple ce serait bla bla et pas chou 26:) comme tu le dis ensuite.

Donc :

- si tu veux récupérer bla bla dans chou - [ bla bla ] 26:), tu fais :

Code: Tout sélectionner
<?php
$ta_chaine = "chou - [ bla bla ] 26:)";
preg_match('/- \[(.*)\]/', $ta_chaine, $matches);
echo $matches[1]; // affiche bla bla
?>


- si tu veux supprimer bla bla dans chou - [ bla bla ] 26:), tu fais :

Code: Tout sélectionner
<?php
$ta_chaine = "chou - [ bla bla ] 26:)";
echo preg_replace('/- \[(.*)\]/', '', $ta_chaine); // affiche chou 26:)
?>


:!: Attention, tu avais mis $tachaine au début et $ta_chaine par la suite :!:

Fred

achaternet
WRInaute impliqué
WRInaute impliqué
 
Messages: 256
Inscription: Mar Fév 11, 2003 12:44

Message le Jeu Avr 01, 2004 17:19

George Abitbol a écrit:Euh... je comprends plus trop, là... Tu dis vouloir sélectionner le bloc compris entre - [ et ]. Donc dans ton exemple ce serait bla bla et pas chou 26:) comme tu le dis ensuite.

Fred


exact, j ai vu ça aprés :oops:

merci encore et là ça devrait le faire ;)))

JC91
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 160
Inscription: Ven Déc 19, 2003 16:54

Message le Jeu Avr 01, 2004 21:27

George Abitbol a écrit:- si tu veux récupérer bla bla dans chou - [ bla bla ] 26:), tu fais :

Code: Tout sélectionner
<?php
$ta_chaine = "chou - [ bla bla ] 26:)";
preg_match('/- \[(.*)\]/', $ta_chaine, $matches);
echo $matches[1]; // affiche bla bla
?>



Pour etre tout a fait complet
- si tu veux recuperer TOUT (y compris un caractere ']') entre le 1er '[' et le dernier ']' :
utilise /- \[(.*)\][^\]]*$/
- sinon
/- \[[^\]*\]/ est "mieux" que /- \[(.*)\]/

[^\]]* veut dire "tout sauf le car. ']' "
alors que .* veut dire "tout (y compris le car. ])"

achaternet
WRInaute impliqué
WRInaute impliqué
 
Messages: 256
Inscription: Mar Fév 11, 2003 12:44

Message le Ven Avr 02, 2004 9:06

JC91 a écrit:Pour etre tout a fait complet
- si tu veux recuperer TOUT (y compris un caractere ']') entre le 1er '[' et le dernier ']' :
utilise /- \[(.*)\][^\]]*$/
- sinon
/- \[[^\]*\]/ est "mieux" que /- \[(.*)\]/

[^\]]* veut dire "tout sauf le car. ']' "
alors que .* veut dire "tout (y compris le car. ])"


:arrow: Merci pour ces precisions JC91, qui peuvent dans certains cas poser pb


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités