Mes expressions rationnelles

14/02/06 à 19:19 :: Yannick Torrès
Catégorie : php

Lorsque l'on développe des applications avec Php, on se doit, à un moment ou un autre, d'utiliser les expressions rationnelles (qui a dit expressions régulières ??).
Le problème, c'est que 6 mois plus tard, on se retrouve à rechercher dans son ancien code une expression que l'on a déjà écrite.

Voici donc un billet, en forme de bloc-note, pour les retrouver rapidement.

Panoplie pour le BBCode :

<?php
// $texte est le texte à traiter

// On cherche les [b] [/b]
$texte preg_replace("|\[b\](.*?)\[/b\]|is""<strong>$1</strong>"$texte);

// On cherche les [u] [/u]
$texte preg_replace("|\[u\](.*?)\[/u\]|is""<span style=\"text-decoration: underline\">$1</span>"$texte);

// On cherche les [i] [/i]
$texte preg_replace("|\[i\](.*?)\[/i\]|is""<em>$1</em>"$texte);

// On cherche les [s] [/s]
$texte preg_replace("|\[s\](.*?)\[/s\]|is""<span style=\"text-decoration: line-through\">$1</span>"$texte);

// On cherche les urls complexes ( [url=http://keliglia.com]Aller sur Keliglia.com[/url] )
$texte preg_replace("|\[url=(.[^]]*?)\](.*?)\[/url\]|is""<a href=\"$1\" title=\"$1\">$2</a>"$texte);

// On cherche les urls simples
$texte preg_replace("|\[url\](.*?)\[/url\]|is""<a href=\"$1\">$1</a>"$texte);

// On cherche les blockquote
$texte preg_replace("|\[quote\](.*?)\[/quote\]|is""<blockquote>$1</blockquote>"$texte);


// On cherche les mails
$texte preg_replace("|\[email\](.*?)\[/email\]|is""<a href=\"mailto:$1\">$1</a>"$texte);

?>


Soulignement et mise en gras rapide :

<?php

// On remplace les mots *comme* ça en gras
$texte preg_replace("| \*(.\w*)\* |is"" <strong>$1</strong> "$texte);

// On remplace les mots _comme_ ça en souligné
$texte preg_replace("| _(.\w*)_ |is"" <span style=\"text-decoration: underline\">$1</span> "$texte);

?>


Placement automatique d'acronymes :

<?php
$acronym 
= Array(

 
'php' => 'PHP : Hypertext Preprocessor',
 
'html' => 'HyperText Markup Language',
 
'css' => 'Cascading Style Sheets',
 
'xml' => 'EXtensible Markup Language',
 
'debian' => 'Debian : http://debian.org'

 
);

while( list(
$key$val) = each$acronym ) ) {
   
$texte preg_replace("/(^|,|:|\s|>)($key)(\.|$|,|:|\s|<|\d)/is""$1<acronym title=\"$val\">$2</acronym>$3"$texte);
 }

?>


Recherche de liens (http, https, ftp ou mailto) :

<?php
$texte 
preg_replace("/(http|https|ftp|mailto)(:)(\/\/){0,}(\S*)/i",
"<a href=\"$1$2$3$4\" title=\"$1$2$3$4\">$1$2$3$4</a>"$texte);
?>



Cette liste n'est évidemment pas exhaustive tellement les expressions rationnelles sont puissantes.
Toutes les expressions précédentes sont des expressions rationnelles compatibles Perl.

Liens utiles :
- La documentation en français sur le site de Php
- Un site consacré au Regexp

Commentaires

  • Mes expressions rationnelles
    journaliste de TF1, le 31/01/07 à 11:12 :: Répondre

    le lien sur les expressions rationnelles n'est plus valide dommage !!!

    • Re : Mes expressions rationnelles
      Yannick Torrès, le 31/01/07 à 11:38 :: Répondre

      Corrigé.

      La page Wikipédia a été renommée au singulier.

promotion

La caractéristique vestimentaire du con consiste en un besoin irrésistible de s'habiller comme tout le monde.

Desproges

Tribune

  • 17:04 Bon anniversaire à Madame (un peu en retard) :)
  • 15:32 19:48 :
  • 19:02 plop
  • 15:04 trop classe
  • 21:56 félicitations Lapin ! j'espère que tu as fété ça au champagne ;)
  • 20:51 URL
  • 20:50 salut lapin je suis tout content ce soir : URL premier lien première page !!
  • 17:56 jg
  • 20:18 Yes, woohoo !! des centaines d'heures de travail derrière ce chiffre :p et il en reste encore autant... 800 nouveaux fichiers non traduits ! mais on va y arriver :)
  • 19:48 Manuel PHP français la traduction de près de 100% nouveau ... Woohoo! :)