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}");
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
(?<![.,])\d{3}
Das Forum ist aber kein Patterngenerator! Guck dir das [Artikel] Regex-Tutorial an, lad dir das Regex-Lab und probiere selbst.
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. [ab] wäre also jedes beliebige Zeichen außer, den drei Zeichen a, b und . [ab] 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