- 13:38 123
- 21:16 lapin!!!
- 14:04 galette
- 09:14 22:37 :
- 14:01 Vu le nombre de messages en tribune, j'ai l'impression de prendre 2 ans d'un coup, là !!;)
- 14:00 merci Gui (car je suppose que c'est toi :) )
- 10:54 Bon anniversaire à Madame (un peu en retard, pour la deuxième année consécutive) :)
- 15:29 salut, ca farte ?
- 23:21 window.location = "URL
- 10:26 Hello. It is very kind for you to allow guests to post here (if it *is* possible) :)
Mes expressions rationnelles
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épondrele lien sur les expressions rationnelles n'est plus valide dommage !!!
-
Re : Mes expressions rationnelles
Yannick Torrès, le 31/01/07 à 11:38 :: RépondreCorrigé.
La page Wikipédia a été renommée au singulier.
-
