PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 15-10-2010 04:54:53

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Besoin d'aide pour un regex

Je cherche a trouver le regex pour trouver si un string commence avec '/' quelqu'un pourrais me filer un coup de main merci.

Hors ligne

#2 15-10-2010 07:21:42

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Besoin d'aide pour un regex

<?php
$chaine = '/ma chaîne !';
if( $chaine[0] == '/' )
    echo 'Ma chaîne débute avec un /';
?>

Pourquoi faire compliqué quand on peut faire simple ? smile

Hors ligne

#3 15-10-2010 12:14:59

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Besoin d'aide pour un regex

Bonjour


$a=preg_match("#^([\/])#");
 

POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#4 15-10-2010 12:26:01

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Besoin d'aide pour un regex

Saluton,
Jc, il manque un argument dans ta fonction preg_match(), le masque doit être appliqué à une chaîne.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 16-10-2010 06:02:31

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Re : Besoin d'aide pour un regex

Merci beaucoup pour l'aide et puis si je veux savoir ce qui suis apres le slashe? big_smile

Hors ligne

#6 16-10-2010 10:48:08

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Besoin d'aide pour un regex

chaine[1] wink
a++

Hors ligne

#7 17-10-2010 18:25:00

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Besoin d'aide pour un regex

Bonsoir,

Oui désolé, j'ai fait ca un peu à l'arrache^^.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#8 23-10-2010 07:03:03

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Re : Besoin d'aide pour un regex

Pierrot j'aimerais pouvoir recuperer le mot complet apres le slashe pas qu'une seul lettre xD

Hors ligne

#9 23-10-2010 07:36:59

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Besoin d'aide pour un regex

heu t'a un peu cherché ?

il suffit d'ajouter un truc "simple" dans la regexp
pour l'apprentissage des expression régulière => http:/www.expreg.com
pour tester tes regexp http://lumadis.be/regex/test_regex.php?lang=fr

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#10 23-10-2010 15:43:34

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Re : Besoin d'aide pour un regex

J'ai assaye mais sa reste trop complexe il montre pas comment retrouver un mot il se sont base sur le vrai ou faux sa m'aide pas sa lol

Hors ligne

#11 23-10-2010 18:21:45

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Besoin d'aide pour un regex

Bonjour,

Si je peux te donner un bon conseil, à chaque chose précise que tu souhaites faire, corresponds au moins un motif précis. Si tu ne sais pas exactement ce que tu veux faire, il est impossible de construire une expression régulière cohérente.

premium a écrit :

J'ai assaye mais sa reste trop complexe il montre pas comment retrouver un mot il se sont base sur le vrai ou faux sa m'aide pas sa lol

Je ne pense pas que tu t'es donné la peine de tout lire et d'essayer de comprendre. Si tu veux faire ça en 5min, normal que tu n'y arrives pas, les expressions régulières font partie des choses les plus difficiles à réaliser en PHP, et c'est quelque chose qui s'acquiert avec le temps, la pratique et l'expérience.

Quand tu sauras exactement ce que tu souhaites faire, tu verras ca sera plus facile d'arriver à tes fins et pour nous aussi, car si toi ca t'aide pas, nous non plus^^.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#12 23-10-2010 18:56:50

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Re : Besoin d'aide pour un regex

Je l'ai dit ce que je voulais faire alors je le repete

je veux avoir le mot apres le slashe admettons   /send ou /get whatever tongue

Hors ligne

#13 23-10-2010 19:08:59

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Besoin d'aide pour un regex

Bonjour,

big_smile je vais me répéter aussi :il faut savoir ce que l'on veut faire précisément par ex: si on veut test la présence de /send ou de /get le motif sera différent pour chacun des deux sauf si ils ont un point commun dans leur structure par ex: /send -  et /get -
etc... etc...
En d'autre terme selon tes critères une infinité d'expressions sont possibles et tu as le choix en plus qu'elles soient capturantes ou non capturantes, gourmandes ou non gourmandes etc...
Voici un exemple générique, non capturant, et qui ne fonctionnera pas selon le contexte du mot à chercher.


$a=preg_match("#^([\/])[a-zA-Z]*#",$chaine_a_tester);
 

donc ici $a=true si $chaine_a_tester commence par / et false sinon. le preg_match lit cependant le mot suivant (sans caractères spéciaux) le slash sans le capturer.
Note: L'expression régulière fournie ne contredit pas ce que j'ai dit au début. En effet le point commun ici est que les mots lus sont composés uniquement des caractères non accentués de a à z et de A à Z.

Dernière modification par Jc (23-10-2010 19:25:13)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#14 24-10-2010 01:26:09

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Re : Besoin d'aide pour un regex

J'ai fais un test et sa fonctionne toujours pas xD


<?php

$text = "/send";
$text2=preg_match("#^([\/])[a-zA-Z]*#",$text);
if ($text2 == '/send') {
echo "true";
}
else {
echo "false";
}

?>

sa me retourne false a tout les coups

Dernière modification par Premium (24-10-2010 01:29:57)

Hors ligne

#15 24-10-2010 08:00:43

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Besoin d'aide pour un regex

Bonjour,

Si tu n'arrives pas à comprendre ce que je viens d"écrire, je comprends beaucoup mieux maintenant pourquoi tu n'arrives pas à comprendre les tutos sur les regex....
Avec $text="/send" c'est normal que $text2 == "/send" te retournes false puisque $text2==true ... Je te le répètes encore $text2==true ou false selon la valeur de $text (pour que $text2==true il faut que $text commence par "/".


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#16 24-10-2010 18:35:55

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Re : Besoin d'aide pour un regex

c'est toi qui comprend pas tu me montre quelque chose qui fais meme pas ce que je veux je veux seulement un regex qui me tourne le mot apres le slashe ya pas plus simple lol mais bref laisse tomber j'ai trouver tout seul

Hors ligne

#17 25-10-2010 07:40:41

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Besoin d'aide pour un regex

      <?php
      $text = "/send";
      $text2=preg_match("#^([\/])[a-zA-Z]*#",$text);
      if ($text2 === true) {
      echo "true";
      }
      else {
      echo "false";
      }
      ?>
 

Traduction correcte des phrases de Jc. Tu aurais mieux fait de relire à deux fois son explication. smile

Hors ligne

#18 26-10-2010 04:58:13

Premium
Membre
Inscription : 08-12-2009
Messages : 9

Re : Besoin d'aide pour un regex

sa me donne pas plus le mot... je veux pas avoir true ou false je veux le mot lol bref c'est 'strstr' que sa prend donc non il avais faut wink

Hors ligne

#19 27-10-2010 21:09:56

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Besoin d'aide pour un regex

Bonjour,

Alors, on va rester soft.
1) une regex ne fait pas le café.
2) une regex ne fait pas se que fait strstr dans ce contexte d'utilisation, et ca n'est pas le but.
3) Ta question initiale était

Premium a écrit :

Je cherche a trouver le regex pour trouver si un string commence avec '/' quelqu'un pourrais me filer un coup de main merci.

Question à laquelle j'ai répondu est que j'ai solutionné pour toi.
4)

Premium a écrit :

c'est toi qui comprend pas tu me montre quelque chose qui fais meme pas ce que je veux je veux seulement un regex qui me tourne le mot apres le slashe ya pas plus simple lol

Si c'est si simple d'avoir un regex qui fait ca, premièrement je ne vois pas la raison de ton post et 2e montre nous ce que tu sais faire et sort nous la regex gros malin.

++

Ps:

Jc a écrit :

Voici un exemple générique, non capturant, et qui ne fonctionnera pas selon le contexte du mot à chercher.

Si tu avais lu ça aussi, tu aurais compris que ce n'était qu'un exemple juste pour t'aider à comprendre et pour que tu trouves par toi même cette fois.

Dernière modification par Jc (27-10-2010 22:53:41)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#20 28-10-2010 08:05:50

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Besoin d'aide pour un regex

Il est pas content mister JC big_smile:D
et de toutes facon, je suis d'accord avec premium, si tu n'es pas capable de faire une regex qui fait le café, ta place n'est pas parmi nous. roll

a++

Hors ligne

#21 28-10-2010 09:06:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Besoin d'aide pour un regex

Déca, pour moi, siou-plait.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#22 28-10-2010 10:34:14

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Besoin d'aide pour un regex

pour répondre
la solution du $chaine[0] permet de savoir s'il y a un / au début de la chaine.
si c'est le cas substr et strpos te permet de finir ce que tu souhaites au final

donc la solution en 3 lignes


<?php
if ($chaine[0]=='/') {
$mot = substr($chaine,1,strpos($chaine,' '));
}
?>
 

plus qu'a tester !

ps : je suis d'accord avec JC il (et les autres) ont répondu à la question posée tu n'as simplement pas su la poser !

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums