Reguläre Ausdrücke·eine ISO-Dauer

eine ISO-Dauer

Passt auf eine ISO-Dauer. Es ist an beiden Enden verankert, die ganze Zeichenkette muss also passen. Es gibt keine Fanggruppen.

Muster
/^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$/
Trefferbereich
die ganze Zeichenkette
Fanggruppen
0
Was es im ersten Beispiel fängt
P1Y2M3D

Selbst ausprobieren

Beliebigen Text eingeben — die gefundenen Stellen werden hervorgehoben. Läuft im Browser und wird nirgendwohin gesendet.

P1Y2M3D

1 Treffer

Beispiele, die passen

  • P1Y2M3D
  • PT30M

Beispiele, die nicht passen

  • 1Y
  • P
  • PT

Andere Ausdrücke dieser Gruppe

So liest man das

  • Mit ^ und $ muss die ganze Zeichenkette passen; ohne sie darf der Treffer irgendwo sitzen. Verankern Sie alles, was Sie zur Prüfung einsetzen.
  • Runde Klammern ( ) fangen, was sie umschließen. Wer nur gruppieren will, schreibt (?: ) — sonst verschiebt sich die Nummerierung.
  • Jeder Ausdruck hier wird gegen seine Beispiele geprüft. Trotzdem sind „sieht aus wie eine E-Mail“ und „ist ein echtes Postfach“ zweierlei.
  • Verschachtelte offene Wiederholungen wie (a+)+ können bei manchen Eingaben explodieren. Achten Sie auf diese Form, bevor Sie fremde Ausdrücke übernehmen.

Häufige Fragen

Q. Wie lautet der Regex für eine ISO-Dauer?

^P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$.

Q. Welche Zeichenketten passen?

Text wie P1Y2M3D passt, Text wie 1Y nicht.

Q. Muss die ganze Zeichenkette passen?

Ja. Er steht zwischen ^ und $, es passt also nur ein vollständiger Treffer.

Q. Wie nutze ich das Gefangene?

Es gibt keine Fanggruppen, zurück kommt nur der ganze Treffer (match[0]). Setzen Sie den gewünschten Teil in Klammern.