Announcement

Collapse
No announcement yet.

Reguläre Ausdrücke für C#

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Reguläre Ausdrücke für C#

    hallo an alle!

    in meiner vorhergehenden dikusion wurde ich auf eine sehr intr. klasse aufmerksam gemacht die ich vorher noch nicht kannte. ich meine "Regex"
    wow die ist ja hammer mächtig, doch habe ich ein mächtiges problem. ich finde in der hilfe keine tabelle wo die regulären ausdrücke zu c# passen. wo kann ich die finden. eine tabelle habe ich in der documentation gefunden doch wenn ich die ausdrücke verwende kommt nie das raus was ich mir erhofft hatte.

    gruß der dicabor

  • #2
    Hallo dicabor,

    Regex ist ein sehr interessantes Thema, mit dem man sicherlich ganze Bücher schreiben kann. Dennoch kann man hier einen kleinen Einblick geben, wie man Regex nutzenkann.

    Um zu prüfen, ob es sich um einen gültigen string handelt, kann man folgende Expression verwenden:
    <pre>^\w+$</pre>
    ^ Prüft auf den Anfang der Zeile (davor darf also nichts stehen)<br>
    \w+ Prüft auf gültige Zeichen (a-z A-Z _ 0-9), das + sagt aus, das mindestens 1 (oder mehr) Zeichen gefunden werden müssen<br>
    $ ist das Gegenteil von ^ und gibt an, dass danach nichts mehr kommen darf. Würden wir das $ weglassen, wäre ein ein String mit Sonderzeichen zum Schluß gültig, da der String (wie gewüscht) mit gültigen Zeichen anfängt.<p>

    Es gibt von O'Reilly ein Buch über Reguläre Ausdrücke, dass aber für Unix geschrieben wurde. Da die Regex aus .NET aber weitgehend kompatibel mit Perl Regulären Ausdrücken sind, kann man dieses Buch auch dafür verwenden.

    Gruß

    Jör

    Comment


    • #3
      Hallo,

      wenn in der Hilfedatei des .NET Framework SDK nach der Zeichenkette "regular NEAR Expression" gesucht wird, landet man bei der Seite <b>Regular Expression Language Elements</b>. Vor dort aus sind Links für 10 gruppierte Hilfeseiten erreichbar. Diese Seite ist auch ganz unten als Link auf der Hilfeseite <b>Regex Class</b> zu finden

      Comment


      • #4
        hallo !

        vielen dank für eure antworten bin schon erheblich weiter gekommen.

        ich hoffe ich kann euch auch mal helfen.

        bis bald der dic

        Comment


        • #5
          hallo,

          habe beim suchen dieses thread entdeckt und hänge meine frage einfach an.
          was sind reguläre ausdrücke und wofür braucht man sie?
          kann mir das bitte jemand erklären oder gibt es da eine gute webseite wo wes beschrieben wird!
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            Informationen: Reguläre Ausdrücke
            .NET GUI - DIE Community für GUI-Entwickler

            Living.NET - Blog :: Live Blog :: .NET Casts

            Hol' dir jetzt dein kostenloses .NET BlogBook.

            Comment


            • #7
              Hallo nitronic,

              wenn ich bei einem sql-befehl
              "... like 'mar%'"
              schreibe, ist das dann auch ein regulärer Ausdruck?
              Herzliche Grüße

              Markus Lemcke
              barrierefreies Webdesign

              Comment


              • #8
                Nein, sondern gefährlich!

                Das hat mit regulären Ausdrücken nichts zu tun, sondern bietet die Möglichkeit einer SQL Injection.
                .NET GUI - DIE Community für GUI-Entwickler

                Living.NET - Blog :: Live Blog :: .NET Casts

                Hol' dir jetzt dein kostenloses .NET BlogBook.

                Comment


                • #9
                  okay
                  aber wenn ich in einem Text nach dem String "mark*" suche, dass ist ein regulärer Ausdruck oder?
                  Herzliche Grüße

                  Markus Lemcke
                  barrierefreies Webdesign

                  Comment


                  • #10
                    Naja. Grundsätzlich verwendet man reguläre Ausdrücke für zwei Bereiche
                    • Textsuchen
                    • Validierungen


                    So ein simples "suchwort*" entspricht wohl eher keiner regular Expression. Schließlich bekommt man das auch ohne sie zusammen. Ein Beispiel wäre auf jeden Fall die Validierung einer Email-Adresse auf ihre Gültigkeit hin (was das Eingabeformat betrifft). Beispiel
                    Code:
                    public static bool isEmail(string inputEmail)
                    {
                       inputEmail  = NulltoString(inputEmail);
                       string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
                             @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" + 
                             @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
                       Regex re = new Regex(strRegex);
                       if (re.IsMatch(inputEmail))
                        return (true);
                       else
                        return (false);
                    }
                    Da hast du auch einen recht einfachen regulären Ausdruck ;-) Aber Achtung: Regular Expressions sind ansich recht einfach zu schreiben, lesen hingegen kann sehr mühsam werden.
                    .NET GUI - DIE Community für GUI-Entwickler

                    Living.NET - Blog :: Live Blog :: .NET Casts

                    Hol' dir jetzt dein kostenloses .NET BlogBook.

                    Comment


                    • #11
                      Hallo,

                      Zusätzlich sind sie auch ein Performancefresser, was natürlich mit den unendlich scheinenden Möglichkeiten dieser Klasse zu tun hat.
                      Ich verwende da lieber, natürlich so lange es halt irgendwie geht (und die Form nicht verliert), die funktionen der String Klasse.
                      Wie z.B.: IndexOf
                      Grüße,

                      Martin

                      Comment


                      • #12
                        So pauschal kann man das nicht sagen. Parse ein HTML-File durch und du stellst sehr bald fest, dass du mit Regular Expressions besser dran bist.
                        .NET GUI - DIE Community für GUI-Entwickler

                        Living.NET - Blog :: Live Blog :: .NET Casts

                        Hol' dir jetzt dein kostenloses .NET BlogBook.

                        Comment


                        • #13
                          Hallo,

                          Das ist genau was ich mit "und die Form nicht verliert" meinte!
                          Es kommt ganz auf den Anwendungsfall an.
                          Ich wollte nur davor warnen um jeden Preis die regex zu verwenden, wenn es auch mit zwei verknüpften IndexOf abfragen getan wäre.
                          Grüße,

                          Martin

                          Comment


                          • #14
                            Das ist korrekt. Es gilt den Umgang mit Regular Expressions zu lernen, um ein Gefühl zu bekommen, wann sich ein Einsatz rentiert und wann nicht.
                            .NET GUI - DIE Community für GUI-Entwickler

                            Living.NET - Blog :: Live Blog :: .NET Casts

                            Hol' dir jetzt dein kostenloses .NET BlogBook.

                            Comment

                            Working...
                            X