Regexp-pattern Optionales Zeichen
Möchte ich mit einer Zeichenfolge überein, wie 19740103-0379 oder 197401030379, ich.e der Bindestrich ist optional.
Wie kann ich erreichen, das mit regexp?
- Geben Sie die Sprache und/oder regex-Bibliothek, die Sie verwenden.
- Sie nutzen könnte [0-9]{8}-?[0-9]{4}
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel können Sie einfach
-?
. Alternativ können Sie-{0,1}
aber Sie sollten feststellen, dass?
für "null oder ein vorkommen von" unterstützt wird, einfach überall.Wenn Sie möchten, zu akzeptieren, 12-stellig, mit einer beliebigen Anzahl von Strichen in der es überall, die Sie vielleicht haben, etwas zu tun:
welche im wesentlichen null oder mehr Bindestriche, gefolgt von 12 vorkommen (eine Ziffer, gefolgt von null oder mehr Bindestriche) und erfassen alle Arten von wunderbaren Dinge wie:
(natürlich sollten Sie verwenden
\d
statt[0-9]
wenn Ihr regex-engine bietet Unterstützung für die).-
in einer Charakter-Klasse ([...]
). Ein dash hat keine Besondere Bedeutung anderswo in einer regex.Könnten Sie versuchen, verschiedene:
\d*
Spiele eine Zeichenfolge, die nur aus Ziffern\d*-\d*
mit einem string von format-Ziffern - Bindestrich - Ziffern[0-9\-]*
mit einem string, das nur aus Strichen und ZiffernKombinieren Sie diese über
|
(oder), so dass Sie zum Beispiel(\d*)|(\d*-\d*)
: entspricht Formate nur Ziffern und Ziffern-Bindestrich-stellen.