Public Shared Sub Parse(ByVal s As String) Dim res As MatchCollection = Regex.Matches(s, "(^[^-].+$)(" & Microsoft.VisualBasic.Chr(10) & "^- .+$)*", RegexOptions.Multiline) Dim i As Integer For i = 0 To res.Count -1 Dim res2 As MatchCollection = Regex.Matches(res(i).Groups(0).Value, "^- (.+)$", RegexOptions.Multiline) Dim j As Integer For j = 0 To res2.Count - 1 Console.WriteLine(res(i).Groups(1).Value.Replace(Convert.ToChar(13), "") + " - " + res2(j).Groups(1).Value) Next Next End Sub
Det ser bestemt ikke ud til at der er nogen elegant løsning med RegExp. Personligt ville jeg da også bare læse denne uden:
Dim SR As StreamReader = New StreamReader("C:\ ... \TextFile1.txt")
Dim Line As String = "" Dim Header As String = ""
Do Line = SR.ReadLine() If (Line = "") Then Header = "" ElseIf (Line.StartsWith("- ")) Then Console.WriteLine(Header + " " + Line) Else Header = Line End If Loop Until Line Is Nothing
SR.Close()
- men det kan jo være et decideret krav at det *skal* gøres med RegExp?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.