Also, das ist das Problem:Regex passt nur zum ersten Auftreten?
Code:
Dim findtext As String = "(?<=<hello>)(.*?)(?=</hello>)"
Dim myregex As String = TextBox1.Text
Dim doregex As MatchCollection = Regex.Matches(myregex, findtext)
MsgBox(doregex(0).ToString)
TextBox1:
<hello>1</hello>
<hello>2</hello>
<hello>3</hello>
Also, wenn ich den Code ausführen, zeigt es MsgBox mit 1
. Warum nur 1? Warum nicht 2 und 3?
Ich habe ?
zu .*
hinzugefügt, aber es ist immer noch dasselbe.
Sie müssen über Match-Objekt iterieren, um alle Übereinstimmungen zu finden – rock321987
Bessere Verwendung mit LINQ, alles wird viel einfacher. –
LINQ ist Scheiße und @Xen schon beste Lösung, keine Notwendigkeit, ihn zu hassen und mir vorzuschlagen, was zu tun ist, weil Sie nicht die beste Lösung beantwortet: P –