IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

wallace1

Extraire du texte contenu entre deux chaines de caractères

Noter ce billet
par , 18/11/2016 à 20h56 (832 Affichages)
Il existe 2 fonctions bien pratiques pour obtenir du texte contenu entre 2 balises :

Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Private Function ParseBetween(Source$, Before$, After$) As String()
    Dim Results As New List(Of String)
    Dim T As New List(Of String)
    With T
        .AddRange(System.Text.RegularExpressions.Regex.Split(Source, Before))
        .RemoveAt(0)
        For Each Item$ In T
           Results.Add(System.Text.RegularExpressions.Regex.Split(Item, After)(0))
        Next
    End With
    Return Results.ToArray
End Function
 
Private Function ParseBetween(Source$, Before$, After$, Offset%) As String
    If String.IsNullOrEmpty(Source) Then 
        Return String.Empty
    End If
    If Source.Contains(Before) = True Then
        Dim Result$ = Source.Substring(Source.IndexOf(Before) + Offset)
        If Result.Contains(After) = True Then
            If Not String.IsNullOrEmpty(After) Then 
                Result = Result.Substring(0, Result.IndexOf(After))
            End If
        End If
        Return Result
    Else
        Return String.Empty
    End If
End Function

Dans le cas où plusieurs occurrences seront probablement trouvées dans le contenu à parser il faut utiliser la fonction qui retourne un tableau de String (la 1ère fonction) :

En partant du principe que tu veux obtenir le "Mes infos" de la chaîne "Programme TF1" (nom que tu connais déjà préalablement) :

Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
   Dim TextToParse = "<div> <span id=""programme"">Programme TF1</span> <span>Mes infos</span> </div>" & vbNewLine &
                            "<div> <span id=""programme"">Programme fr2</span> <span>Mes infos</span> </div>"
 
        Dim Result() As String = ParseBetween(TextToParse, "<span id=""programme"">Programme TF1</span> <span>", "</span>")
        For Each occur In Result
            MsgBox(occur)
        Next

Tu peux parcourir le texte pour obtenir le nom des chaînes :

Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
   Dim TextToParse = "<div> <span id=""programme"">Programme TF1</span> <span>Mes infos</span> </div>" & vbNewLine &
                            "<div> <span id=""programme"">Programme fr2</span> <span>Mes infos</span> </div>"
 
  Dim Result() As String = ParseBetween(TextToParse, "<span id=""programme"">", "</span>")
        For Each occur In Result
            MsgBox(occur)
        Next

A+

Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog Viadeo Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog Twitter Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog Google Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog Facebook Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog Digg Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog Delicious Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog MySpace Envoyer le billet « Extraire du texte contenu entre deux chaines de caractères » dans le blog Yahoo

Mis à jour 16/08/2017 à 18h45 par Malick (Ajout balises code)

Catégories
DotNET , C# , VB.NET

Commentaires