yanmai
Goto Top

C-sharp SearchPattern (Regex)

Hallo ihr Administratoren,
ich verwende ein AUtocpmpletemenu Plugin. Dort habe ich Snippets, die dann sozusagen completed werden. Beim erstellen des Menüs gibt es die Eigenschaft SearchPattern. Bei der Sprache CSS bsp gibt es keine Probleme, da es dort normale Worte sind. Bei html gibt es aber <html>... und id. Nun brauche ich Regex Pattern, die normale Buchstaben zulassen und das Zeichen <... Wie mache ich das?

Content-Key: 343913

Url: https://administrator.de/contentid/343913

Printed on: April 26, 2024 at 01:04 o'clock

Mitglied: 133417
133417 Jul 19, 2017 updated at 18:33:09 (UTC)
Goto Top
Sonderzeichen im Regex-String werden mit Backslash escaped!
Bsp.
{ wird zu \{
$ wird zu \$
+ wird zu \+
usw.
Willst du für den User die Eingabe einfacher machen so dass er Sonderzeichen ganz normal eingeben kann gibt es die statische Methode Escape() im Namespace System.Text.RegularExpressions.Regex
Beispiel
string regex = System.Text.RegularExpressions.Regex.Escape(@"String mit S()nderze.chen{}")  
Diese Methode escaped alle Sonderzeichen automatisch
String\ mit\ S\(\)nderze\.chen\{\}
Gruß
Member: Yanmai
Yanmai Jul 19, 2017 at 18:50:08 (UTC)
Goto Top
Vielen Dank, aber ich brauche ja Sonderzeichen und normale Buchstaben
Mitglied: 133417
133417 Jul 19, 2017 updated at 19:03:52 (UTC)
Goto Top
Das ist doch egal du kannst ja selbst steuern ob es ein Regex-Zeichen mit besonderer Bedeutung sein soll oder eben nicht indem du es escapst oder nicht !! Ich versteh dein Problem nicht ?!
Normale Zeichen werden ja nicht escaped.
Also beschreibe dein Problem mal vernünftig, nicht in so nichtssagenden Einzeilern. DANKE!
Member: Yanmai
Yanmai Jul 19, 2017 at 19:20:40 (UTC)
Goto Top
Ich habe 2 Arrays. Eins für <html>..., also mit < und eins für die Argumente in HTML wie id, class und so weiter. Dann habe ich eine Methode, in der das AutoCompleteMenu erstellt wird, welche am Programmstart ausgeführt wird. Ich habe jetzt schon rumprobiert und gemerkt, dass wenn ich die Eigenschaft SearchPattern auslasse, kommen mir alles Argumente. Setze ich als SearchPattern nur das <, dann kommen nur Worte mit <html>... Ich brauche aber beides.

Zur Info: Ich benutze dieses AutoCompleteMenu (Package-Name) AutoCompleteMenu-ScintillaNET, wozu man hier die Dokumentation findet.

 try
            {
                autoCompleteMenu_html.Colors = colors;
                autoCompleteMenu_html.AppearInterval = 1;
                autoCompleteMenu_html.AutoPopup = true;
                autoCompleteMenu_html.CaptureFocus = false;
                autoCompleteMenu_html.LeftPadding = 30;
                autoCompleteMenu_html.MinFragmentLength = 1;
                autoCompleteMenu_html.Font = new Font("Consolas", 10f);  
                autoCompleteMenu_html.AllowsTabKey = true;
                autoCompleteMenu_html.ToolTipDuration = 1;
                autoCompleteMenu_html.ImageList = this.imageList2;
                autoCompleteMenu_html.SearchPattern = "\\<";  
                var items = new List<AutocompleteItem>();

                foreach (var item in autoCompleteData.autoCompleteMenuData_html)
                    items.Add(new SnippetAutocompleteItem(item) { ImageIndex = 0 });
                foreach (var item in autoCompleteData.autoCompleteMenuData_html_arguments)
                    items.Add(new SnippetAutocompleteItem(item) { ImageIndex = 0 });
                autoCompleteMenu_html.SetAutocompleteItems(items);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
Member: Yanmai
Yanmai Jul 21, 2017 at 07:26:47 (UTC)
Goto Top
Ihr brauche eure Hilfe
Member: mayho33
mayho33 Dec 10, 2017 at 12:48:49 (UTC)
Goto Top
versuche mal www.regexr.com.

Die verwende uch auch immer um zu testen bevor ich das in meinen Code einbaue.

Du kannst aber auch mal nach regex cheatsheet suchen. Da bekommst du einen guten Überblick.