Thread Regex für Timestamp matcht nicht so wie gewünscht
(25 answers)
Opened by GwenDragon at 2024-02-01 12:07
Ohne die Verankerung am Ende kann der erste Regex bei +123A1234.11 zutreffen.
Im ersten Versuch beim Matching klappt es nicht, weil das A nicht erwünscht ist. Wenn man dann im zweiten Versuch das "wenn vorhanden" als "oder auch eben nicht" interpretiert, dann kann die Regex-Engine den zweiten optionalen Teil im Regex und das A1234.11 ignorieren und es bleibt der Treffer für ^(\D)?(\d+) für den Anfang "+123" übrig. Erst wenn der Ende-Anker dazu kommt, dann scheitert es eben am A, weil das halt nicht mehr ins Muster ^(\D)?(\d+)$ passt. Ich hoffe, ich konnte mich in der Kürze halbwegs verständlich ausdrücken. Auf https://regex101.com/ kann man das gut nachstellen. Edits: * Verschiedene Umformulierungen + regex101.com Anhänge Last edited: 2024-02-01 13:42:01 +0100 (CET) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |