Problème regex

Résolu
Gandalf5798 Messages postés 20 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 26 juillet 2010 - 10 juin 2010 à 13:43
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 11 juin 2010 à 02:37
Bonjour,

J'ai le paragraphe suivant:

Titre;
ligne1;
ligne2;
ligne3;;

Ce modèle étant répété x fois, j'aimerais faire une regex pour le récupérer. Or je n'arrive pas à lui indiquer d'exclure ; deux fois (;;).

Expressions ne fonctionnant pas:
(Titre)([^;{2}])*
(Titre)([^;;])*
(Titre)([^(;;)]*)

A chaque fois il s'arrête au premier ";".
J'ai bien sûr activé l'option multiline et je récupère bien l'objet match.

Merci

3 réponses

cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
10 juin 2010 à 22:35
Bonsoir,
voici une fonction qui marche chez moi :
    Function remplaceChar(ByRef test_string As String, ByRef caractARemplacer As String, ByRef parQuoi As String) As String

        Dim m As Match

        m = Regex.Match(test_string, caractARemplacer)
        test_string = Regex.Replace(test_string, caractARemplacer, parQuoi)

        Return test_string

    End Function


Et pour tester un bouton nommé btnRemplaceCaract :
   Private Sub btnRemplaceCaract_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemplaceCaract.Click

        '*** Ici dans l'expression indiquée, on remplace les ";" par rien "".
        MessageBox.Show(remplaceChar(";ligne3;;;", ";", ""))

    End Sub
3
Gandalf5798 Messages postés 20 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 26 juillet 2010
10 juin 2010 à 23:17
Je n'ai effectivement pas pensé à la solution du remplacement.
Ce n'est que contourner le problème (parce que je pense que c'est faisable directement dans le regex) mais ça le solutionne quand même.

Merci
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
11 juin 2010 à 02:37
Juste pour info, pour le remplacement de texte en .Net il y a la fonction native "Replace" de "System.String" :

Dim Montexte As String = " Bla bla bla; Bla bla; Bla bla bla;;"
Montexte = Montexte.Replace(";", "")


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Rejoignez-nous