Expressions régulières... Ouais ça fait peur !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Expressions régulières... Ouais ça fait peur !

par Hywan » 28 oct. 2008, 15:26

Uè ça va hein :-* … C'est vrai que c'est facile et même si visuellement c'est impressionnant, ça n'a rien de compliqué, c'est très logique. Et c'est une petite merveille les expressions régulières (et les automates d'une manière générale) :).

par Calimero » 28 oct. 2008, 14:40

Hey :),

Et encore c'est rien, y a plus costaud comme expression régulière. Mais il n'y a rien de compliqué dans tout ça, c'est très logique. Il suffit de bien comprendre. Si ça t'intéresse, penche toi sur la théorie des langages avec les grammaires régulières, les langages réguliers et donc les expressions régulières. Tu verras que tout ça à un sens :).
C'est sûr qu'après la lecture de ce message on est tout de suite rassuré, et les regexp ne font plus peur du tout :langue:

par Hywan » 28 oct. 2008, 14:14

Hey :),

Et encore c'est rien, y a plus costaud comme expression régulière. Mais il n'y a rien de compliqué dans tout ça, c'est très logique. Il suffit de bien comprendre. Si ça t'intéresse, penche toi sur la théorie des langages avec les grammaires régulières, les langages réguliers et donc les expressions régulières. Tu verras que tout ça à un sens :).

par Berzemus » 28 oct. 2008, 11:00

Merci à vous tous !

Serieux.. '#\[[^]]+\]([^[]+)[^]]+\][^]]+]([^[]+)#' ... Ca fait pas fliper ?! On dirait des insultes dans une BD..
Et le testeur ça déchire, ça m'évite de tester tout seul et de voir des messages d'erreur partout parce que je n'y comprend rien !!

Merci ;)
C'était pour faire peur, comme c'est halloween..

Celle-ci aurait marché tout aussi bien:
$regex = "#\[new\]([^[]+)\[/new]\[search]([^[]+)\[/search]#";

par euhkah » 28 oct. 2008, 05:16

Merci à vous tous !

Serieux.. '#\[[^]]+\]([^[]+)[^]]+\][^]]+]([^[]+)#' ... Ca fait pas fliper ?! On dirait des insultes dans une BD..
Et le testeur ça déchire, ça m'évite de tester tout seul et de voir des messages d'erreur partout parce que je n'y comprend rien !!

Merci ;)

par jojolapine » 27 oct. 2008, 15:15

Et sinon pour en rajouter un peu; un outil indispensable en ligne:
http://lumadis.be => testeur d'expression régulière en php! (+ un tuto)

Re: Expressions régulières... Ouais ça fait peur !

par Berzemus » 27 oct. 2008, 10:47

Et je cherche simplement une fonction qui va me donner blablabla et une autre qui va me donner bloblobloblo..

Code : Tout sélectionner

#(bla){3}#
et

Code : Tout sélectionner

#(blo){4}#
Non ? :wink:

Et sinon, pour récupérer ce qui se trouve entre [new] et [search], au cas ou, c'est toujours intéressant:
$texte = '[new]blablablablablabla[/new][search]bloblobloblobloblobloblo[/search]';
$expression = '#\[[^]]+\]([^[]+)[^]]+\][^]]+]([^[]+)#';
preg_match_all($expression,$chaine,$matches, PREG_SET_ORDER);

// pour voir ce qu'il y a dans $matches
echo "<pre>";
print_r($matches);
echo "</pre><br><br>";

echo "new: ".$matches[1]."<br>";
echo "search :".$matches[2]."<br>";

par chrislabricole » 26 oct. 2008, 21:42

Tu peux peut-être regarder le fonction preg_replace() ;)

par Invité » 26 oct. 2008, 20:33

Je te remercie.
Au passage, il y'a quelqu'un qui à quelque chose de plus joli que ça ? :

Code : Tout sélectionner

$t = [new]blablablablablabla[/new][search]bloblobloblobloblobloblo[/search]; preg_match("/\[new\](.+?)\[\/new\]/is", $t), $matches, PREG_OFFSET_CAPTURE); str_replace("[new]", "", str_replace("[/new]", "", $matches[0][0]));
Parce que j'en ai marre de coder comme un pierrafeu.. Ca marche mais c'est tout moche !

par chrislabricole » 26 oct. 2008, 20:19

Non c'est preg_match() pour les expressions régulières ;)

Expressions régulières... Ouais ça fait peur !

par euhkah » 26 oct. 2008, 20:16

J'ai pas pour habitude de demander de l'aide, pour être honnête, je trouve d'habitude toujours réponse à mes questions sans le faire.. Mais voilà, là j'ai un problème avec ces expressions régulières, et je crois que je pourrais lire et relire mon cours des millions de fois, je n'y comprendrai jamais rien..

J'ai une chaine qui se compose comme ça :

Code : Tout sélectionner

[new]blablablablablabla[/new][search]bloblobloblobloblobloblo[/search]
Et je cherche simplement une fonction qui va me donner blablabla et une autre qui va me donner bloblobloblo..
C'est peut etre un truc qui ressemble à

Code : Tout sélectionner

strtok("/\[new\](.+?)\[\/new\]/is", "[new]blablablablablabla[/new][search]bloblobloblobloblobloblo[/search]");
? J'ai essayé ça mais j'pense pas qu'on puisse utiliser une expression régulière dans un strtok non ?

Pouvez-vous m'aider ?..