Bloc-note 'Expressions Régulières'
Le 6 décembre 2007, à 0:38 par Ulhume...

Vu que ça me fatigue de rechercher à chaque fois les mêmes regex's, ouverture d'un petit bloc-note dédié à l'art (non maîtrisé) du parsing.

URL

Pour parser une URL d'un coup, celle-là marche plutôt bien à un détail près, il englobe la query et le hash (ce qu'il y a après un éventuel #). Pour éviter cela, si cela pose problème, il faut enlever le dernier ? et systématiquement ajouter un # à la fin de l'url avant parsing, s'il n'y est pas déjà évidemment. :

  1. sub Parse {
  2.     if ( shift =~ /^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/g ) {
  3.         my ($query,$hash) = split(/#/,$7);
  4.         if (!defined $hash) {
  5.             $hash='';
  6.        }
  7.        if (!defined $query) {
  8.            $query='';
  9.        } else {
  10.            $query=substr($query,1);
  11.        }
  12.        my %result = (
  13.            protocol=>$2,
  14.            host=>$3,
  15.            path=>$4,
  16.            file=>$6,
  17.            query=>$query,
  18.            hash=>$hash
  19.            );
  20.        return %result;
  21.    }
  22.    return {};
  23. }

Commentaires

Répondre

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Textual smileys will be replaced with graphical ones.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.

Plus d'informations sur les options de formatage

Connexion utilisateur
Les derniers bavardages...