IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Manipulation avancée d'un texte via les regex


Sujet :

Contribuez

  1. #1
    Membre éclairé Avatar de verredewhisky
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Janvier 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Janvier 2013
    Messages : 63
    Par défaut Manipulation avancée d'un texte via les regex
    Pour ceux qui ne connaissent pas, il existe les expressions rationnelles (regex) qui permettent une manipulation avancée d'une chaines de caractères. Très utiles pour faire des recherches ou vérifier ce que l'utilisateur entre dans un inputbox.

    Attention vous devez cocher "Microsoft VBScript Regular Expressions 5.5" dans "Outils\Références".

    Sytnaxe

    Expressions rationnelles :

    Caractère Type explication
    . Point n'importe quel caractère
    [...] classe de caractères tous les caractères énumérés dans la classe
    [^...] classe complémentée Tous les caractères sauf ceux énumérés
    ^ circonflexe marque le début de la chaine, la ligne...
    $ dollar marque la fin d'une chaine, ligne...
    | barre verticale alternative - ou reconnaît l'un ou l'autre
    (...) parenthèse utilisée pour limiter la portée d'un masque ou de l'alternative
    * astérisque 0, 1 ou plusieurs occurrences
    + le plus 1 ou plusieurs occurrence
    ? interrogation 0 ou 1 occurrence

    Fonctions

    .Test() : renvoie vrai si le pattern est trouvé dans la chaine.
    .Execute() : renvoie toutes les positions du pattern dans un tableau.
    .Replace() : remplace le pattern par le paramètre deux.


    Exemples

    Supprimer toutes les balises HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Sub RegexChaine()
        Dim RegEx As RegExp
        Set RegEx = New RegExp
        With RegEx
            .IgnoreCase = True
            .Global = False
            .Pattern = "<.*>(.*)<.*>"
        End With
        chaine$ = "Test regex VB pour <balise1>Bobby</balise1>."
        chaine$ = RegEx.Replace(chaine$, "$1")
        MsgBox (chaine$)
        ' Affiche : "Test regex VB pour Bobby." (sans les balises)
    End Sub
    Extraire un mot inconnu qui en précède un autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub RegexExtraction()
        Dim RegEx As RegExp
        Set RegEx = New RegExp
        With RegEx
            .IgnoreCase = True
            .Global = False
            .Pattern = "[a-z]* Bobby"
        End With
        chaine$ = "Test regex VB de Bobby le buveur de whisky."
        chaine$ = RegEx.Replace(chaine$, "$1")
        MsgBox (chaine$)
        ' Affiche : "de Bobby"
    End Sub

    Exemples de regex PHP

    Pour avoir un numéro de téléphone français valide :

    #^0[1-68]([-. ]?\d{2}){4}$#

    Pour avoir un email valide :

    #^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#

    Pour faire une recherche sur une base de donnée (ici MySql) :

    SELECT nom FROM visiteurs WHERE ip REGEXP '^84\.254(\.[0-9]{1,3}){2}$'

    Sélectionne tous les noms de la table visiteurs où l'ip commence par "84.254" et se termine par 2 autres nombres de 1 à 3 chiffres (ex : 84.254.6.177).

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En complément de ces informations, un tuto sur le sujet : Les Expressions Rationnelles et Access par la pratique

    Philippe

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/01/2011, 21h21
  2. Réponses: 0
    Dernier message: 28/12/2010, 09h27
  3. [PPT-2003] Manipulation de texte via VBA
    Par lecail65 dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 03/02/2010, 13h12
  4. Réponses: 21
    Dernier message: 25/12/2008, 21h44
  5. Réponses: 3
    Dernier message: 24/05/2007, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo