Regex.Matches - Global Tag ?

  • Java

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von rdmguy.

    Regex.Matches - Global Tag ?

    Hallo.

    Und zwar habe ich einen Quelltext, aus dem ich mehrere Werte gleichen Aufbaus in Java regexen möchte.

    Zunächst der Aufbau des Zielstrings:

    Quellcode

    1. href="/dogear/click?link=fa651c20-a06e-44ca-a761-65aeeca6a8f7">EinsP&lrm;<
    2. href="/dogear/click?link=gksheieo-bgee-degt-thjud-74g4gjskleef">ZweiP&lrm;<


    Mein RegexPattern sieht derzeit wie folgt aus:

    Quellcode

    1. String pat = "dogear/click\\?link=([^\"]+)";



    Meine Methode zum Regexen mehrerer Matches sieht so aus:


    C#-Quellcode

    1. public static ArrayList<String> Matches(String tSource, String Pat) throws IOException {
    2. ArrayList<String> Mat = new ArrayList<String>();
    3. Matcher m = Pattern.compile( Pat, Pattern.MULTILINE ).matcher( tSource );
    4. while (m.find()) {
    5. Mat.add( m.group( 1 ) );
    6. }
    7. return Mat;
    8. }


    Weiss jemand, warum ich da nicht alle Matches bekomme?
    Hast die Lösung sicher schon gefunden... Falls nicht, so gehts.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim search As String = "href=""/dogear/click?link=fa651c20-a06e-44ca-a761-65aeeca6a8f7"">EinsP&lrm;< href=""/dogear/click?link=gksheieo-bgee-degt-thjud-74g4gjskleef"">ZweiP&lrm;<"
    3. Dim pattern As Regex = New Regex("dogear/click\?link=([^\""]+)")
    4. Dim matches As MatchCollection = pattern.Matches(search)
    5. For Each m As Match In matches
    6. Console.WriteLine(m.Groups(1).Value)
    7. Next
    8. End Sub


    Ausgabe:
    fa651c20-a06e-44ca-a761-65aeeca6a8f7
    gksheieo-bgee-degt-thjud-74g4gjskleef