Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
"." oder das "," dürfen in Regexpattern nicht vorkommen
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

"." oder das "," dürfen in Regexpattern nicht vorkommen

beantworten | zitieren | melden

Hallo, breche mir gerade einen ab. Muss eine Prüfung vornehmen, an einem String, der 3 Zahlen haben darf. Aber vor den drei Zahlen darf kein Leerzeichen, kein "," und kein "." sein. Wie integriere ich das in das Pattern?

Regex regExp1 = new Regex(@"[\D^.^,]\d{3}");
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1.552
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

Hallo oehrle,

\d heißt Zahl, in diese Gruppe fällt das , und . schon gar nicht rein.

Dementsprechend ist \d{3}, bzw. ^\d{3}$ für ganze Strings schon ausreichend.

Gruß,
Michael
Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Stringlänge

beantworten | zitieren | melden

Hallo, mein String kann 10 oder auch bis 25 Zeichen lang sein. Es muss nur ein Teilstring mit drei aufeinanderfolgenden Ziffern enthalten sein, davor darf aber kein "," oder "." stehen. Die drei Ziffern können auch gleich am Stringanfang stehen.

AD21UZ123FG2 ==> OK

AD21UZ.123FG2 ==> Nicht OK
private Nachricht | Beiträge des Benutzers
dN!3L
myCSharp.de - Experte

Avatar #avatar-2985.png


Dabei seit:
Beiträge: 2.891

beantworten | zitieren | melden

(?<![.,])\d{3}

Das Forum ist aber kein Patterngenerator! Guck dir das [Artikel] Regex-Tutorial an, lad dir das Regex-Lab und probiere selbst.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo zusammen,

weil das in diesem Thread etwas durcheinander geht, hat mich das motiviert, den folgenden Hinweis zu verfassen: Unterschied zwischen Ziffern und Zahlen. :-)

Mal abgesehen davon, dass dN!3L schon den richtigen Weg per Lookbehind genannt hat, möchte ich noch ein Missverständnis klären, dass offensichtlich zu dem fälschlichen Teil [\D^.^,] im Pattern aus dem Startbeitrag geführt hat. Die Zeichenmenge in eckigen Klammern lässt sich negieren, das ist richtig, aber nur ganz oder gar nicht. Negiert wird durch ein einzelnes ^ als erstes Zeichen hinter der öffnenden eckigen Klammer. Wenn das ^ nicht als erstes Zeichen steht, steht es wie (fast) jedes andere Zeichen innerhalb der eckigen Klammern für sich selbst. [^a^b] wäre also jedes beliebige Zeichen außer, den drei Zeichen a, b und ^. [a^b] wäre jedes beliebige der drei Zeichen a, b und ^. [^^] wäre jedes beliebige Zeichen außer ^. Mit [\D^.^,] war also offensichtlich eigentlich [^\d.,] gemeint (man beachte, dass aus dem großen D ein keines d wurde).

herbivore
private Nachricht | Beiträge des Benutzers