Ich habe eine Zeichenfolge, die das folgende Format haben muss:
XXXX-XX-XXX-XXXX-XXXXXXXXXX-X
wobei X eine ganze Zahl ist. Die Anzahl der ganzen Zahlen spielt keine Rolle. Ich muss nur sicherstellen, dass die Zeichenfolge:
Was wäre der einfachste Weg, dies zu überprüfen?
Dieser Regexp sollte den Trick machen. Es verwendet ein negatives Lookbehind , um zu vermeiden, dass mehrere Bindestriche in einer Zeile übereinstimmen.
%Vor%Hier ist ein C # -Code, der seine Verwendung veranschaulicht (auch auf ideone ):
%Vor%Verwenden Sie einen regulären Ausdruck.
%Vor%Dies setzt voraus, dass die Zeichenfolge mindestens drei Zeichen lang ist.
Aufschlüsselung:
%Vor% Sie können +
in *
ändern, um 2-stellige Strings gültig zu machen, und eine Alternation hinzufügen, um auch 1-stellige Strings gültig zu machen:
Hinweis: In .NET stimmt \d
mit beliebigen Unicode-Ziffern überein (also stimmen beispielsweise arabische Ziffern überein) - wenn Sie das nicht möchten, ersetzen Sie \d
durch [0-9]
an jedem Ort.
Sie können einen regulären Ausdruck schreiben, der den Trick macht.
Dann können Sie diesen regulären Ausdruck verwenden, um Ihre Zeichenfolge zu validieren
%Vor%mehr Infos unter