Webmaster Hub: Probleme affichage regex chaine - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Probleme affichage regex chaine Noter : -----

#1 L'utilisateur est hors-ligne   sandrinoo 

  • Groupe : Actif
  • Messages : 31
  • Inscrit(e) : 22-octobre 05
  • Genre:Femme

Posté 15 novembre 2011 - 15:09

Bonjour à toutes et à tous,

Je sui graphiste et commence tout juste à m'intéresser au expressions régulières car j'en ai besoin pour un client.
(bref la programmation n'est pas mon fort).

Je voudrais n'afficher d'une chaine que ce qui se trouve avant un point (le . de la ponctuation).

Je fais donc :

$reg = '/^(.+?)[.].*$/';
$str = "a. b";
print_r (preg_replace($reg, '$1', $str));



Et cela marche : je n'ai que le a qui s'affiche.

Maintenant je voudrais n'afficher que ce qui se trouve après ce point (le b) : et c'est là que je sèche.

comment modifier ? :

$reg = '/^(.+?)[.].*$/';

Si quelqu'un voulait me répondre ça serait sympa...

sandy.
0

#2 L'utilisateur est hors-ligne   BlackPage 

  • Groupe : Actif
  • Messages : 23
  • Inscrit(e) : 27-avril 05

Posté 15 novembre 2011 - 15:45

Salut,

Perso, j'aurais plutot fait comme ca :

$str = 'a. b. c. d. e. f';
$Liste = explode('.', $str);
for ($i=0;$i<count($Liste);$i++){
print $Liste[$i] . "<br>";
}

après tu peux traiter chaque élément comme tu veux dans ta boucle...

Bon courage !
0

#3 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 15 novembre 2011 - 17:08

Si tu veux continuer d'utiliser ton expression régulière, il va falloir ajouter un second jeu de parenthèses (Ce sont elles qui "capturent" les morceaux de texte que tu peux réutiliser).

$reg = '/^(.+?)[.](.*)$/';
$str = "a. b";
echo(preg_replace($reg, '$1', $str));
echo(preg_replace($reg, '$2', $str));



Mais comme l'a fait remarquer BlackPage, pour séparer simplement des chaînes de caractères quand il y a un motif simple de séparation, explode() est tout indiqué.

PS : echo() me semble plus approprié dans le code que print_r() : echo() est destiné à une chaîne de caractères, et print_r() à un tableau ou un objet.
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#4 L'utilisateur est hors-ligne   sandrinoo 

  • Groupe : Actif
  • Messages : 31
  • Inscrit(e) : 22-octobre 05
  • Genre:Femme

Posté 16 novembre 2011 - 10:10

Merci à tous les 2.

Ta solution, captain-torche, me convient à merveille !

C'était tout simple en fait.
Je commence tout juste à apprendre les expressions régulières.

Merci encore à toi.

Bonne journée.

Sandy.
0

#5 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 16 novembre 2011 - 10:34

Tu vas voir, c'est pas si compliqué que ça en a l'air !

Pour continuer à apprendre, je ne saurais que te conseiller de débuter avec http://www.expreg.com/ (Même s'il est à l'abandon), puis de continuer (Dès que tu as bien appris les bases) avec http://www.lumadis.b...x/tuto_pcre.php
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)