[VB.NET] Text Highlighting & RegEx

08/27/2014 22:03 derpierre65#1
Hey Community,

ich benutze "Fast Colored TextBox for Syntax Highlighting" um ein Text in einer Textbox "farbig" zu machen.
Folgenden Code benutze ich um z.B. "for" zu highlighten:
Code:
Dim BlueStyle As Style = New TextStyle(Brushes.Blue, Nothing, FontStyle.Regular)

Private Sub FastColoredTextBox1_TextChanged(sender As Object, e As TextChangedEventArgs) Handles Code1.TextChanged
e.ChangedRange.SetStyle(BlueStyle, "for", RegexOptions.Multiline)
End Sub
Schreibe ich "for" steht dieser Text nun in blau, benutze ich "For" ist es nicht so (soweit richtig), aber wenn ich z.B. "forward" schreibe ist nun "for" in Blau geschrieben und "ward" in ganz normaler Farbe.
Es geht nicht nur um "forward", sondern auch darum wenn vor dem "for" ein Buchstabe oder eine Zahl steht.
Soweit ich weiss müsste ich dass Problem mit RegEx lösen, aber ich habe eine Menge ausprobiert und alles blieb erfolglos...
Weiss vielleicht jemand wie ich dieses Problem lösen könnte?

Danke schon mal im voraus :)
08/28/2014 03:37 Beni#2
(/d)"for" //bei Einstelligenzahlen (dein RegexPattern. &dann Gruppe 1 aufrufen)
(/d+)"for" bei mehrstelligen Zahlen.
Und dann die matches abspeichern und dann hast alle Zahlen die davor stehen. [Bin mir bei den Pattern nicht zu 100% sicher, hab schon länger nixmehr mit RegEx gemacht. Du musst auch mit den 'MagicQuotes' aufpassen, da VB (kenne mich 0 damit aus) die Slashes im Regex auch als Slashes werten soll, also musst[in C# zumindest] nochmal 2x// davorsetzen. bei Anführungszeichen war es glaub 1 Slash.

Lg
08/28/2014 16:03 Mostey#3
Code:
(for)
Simple as that. Schau dir bitte mal die Pattern und Grundlagen von Regex an.
08/28/2014 20:01 derpierre65#4
(/d)"for", (for) und (/d+)"for" gehen alle nicht, bei (for) markiert er es so als ob ich nur for benutze, bei den anderen 2 markiert er gar nichts ;)
08/28/2014 20:28 Mostey#5
Code:
([a-zA-Z]*|[0-9]*)\s+(for)
Sollte als Ansatz genügen - sofern das nicht schon die Lösung ist...
08/29/2014 16:11 derpierre65#6
Funktioniert immer noch nicht.
08/29/2014 19:58 Mostey#7
Quote:
Originally Posted by derpierre65 View Post
Funktioniert immer noch nicht.
Und was erwartest du nun? Das jemand deine Arbeit macht? Dann aber bitte mit entsprechendem Lohn.

Zumal du das vorherige Pattern einfach nur minimal anpassen müsstest...