Regex gesucht
Pit
- regex
0 beatovich0 dedlfix0 Matthias Apsel0 Pit
0 Gunnar Bittersmann
Hallo,
ich suche den regulären Ausdruck für: String bis zu Leerzeichen, der mit AB beginnt und danach entweder e oder keinen weiteren Buchstaben hat und anschließend beliebig viele Ziffern bis zu einem Leerzeichen hat.
Ich dachte an: /[1]\w\d+\b/
Also: String soll mit AB beginnen, gefolgt von einem beliebigen Wortzeichen, 1-n Ziffern und nachfolgend einer Wortgrenze.
Irgendwie deucht mir aber, der Ausdruck macht nicht ganz, was er soll.
Wie muß er denn richtig lauten, bzw. was ist falsch an meinem Ausdruck?
Pit
AB ↩︎
[]
ist eine Zeichenklasse, das heißt, ein (einzelnes) Zeichen aus dieser Klasse muss es sein. Wenn du aber die Sequenz AB haben möchtest, musst du auch AB wörtlich hinschreiben, nicht als "eins von denen".
Hi dedlfix.
danke erstmal, aber /^AB\w\d+\b/ matcht auch nicht wirklich…
Pit
Tach!
danke erstmal, aber /^AB\w\d+\b/ matcht auch nicht wirklich…
Dann wirf den Ausdruck zusammen mit Test-Daten mal in einen Online-RegExp-Tester, der erklärt dir genau, was da wie gewertet wird.
dedlfix.
Hallo Pit,
ich suche den regulären Ausdruck für: String bis zu Leerzeichen, der mit AB beginnt und danach entweder e oder keinen weiteren Buchstaben hat und anschließend beliebig viele Ziffern bis zu einem Leerzeichen hat.
Ich denke mal das ist ein Schreibfehler: „e“ gemeint ist „einen“
Ich dachte an: /[1]\w\d+\b/
Also: String soll mit AB beginnen, gefolgt von einem beliebigen Wortzeichen, 1-n Ziffern und nachfolgend einer Wortgrenze.
/^AB[a-zA-Z]?\d*\s/
bei \w
sind auch die Ziffern mit dabei
beliebig viele kann mindestens eins (+
) oder auch keins (*
) heißen
\s
liefert whitespace
Bis demnächst
Matthias
AB ↩︎
Hallo matthias,
Ich denke mal das ist ein Schreibfehler: „e“ gemeint ist „einen“
Ja, stimmt.
/^AB[a-zA-Z]?\d*\s/
beliebig viele kann mindestens eins (
+
) oder auch keins (*
) heißen
Keine Ziffer darf nicht.
\s
liefert whitespace
Deine Regex passt., danke. Wobei... sie matcht auch "husdfg e AB HUT", was nciht ganz korrekt wäre.
bei
\w
sind auch die Ziffern mit dabei
Das wäre aber doch egal, da anschließend ohnehin beliebig viele Ziffern folgen dürfen, oder?
Übrigens matcht anscheinend ^AB\w\d+\b ebenfalls. Jedenfalls bei den Beispielen, die ich versucht habe.
Pit
Hallo Pit,
/^AB[a-zA-Z]?\d*\s/
beliebig viele kann mindestens eins (
+
) oder auch keins (*
) heißenKeine Ziffer darf nicht.
Dann muss ein +
gesetzt werden.
Deine Regex passt., danke. Wobei... sie matcht auch "husdfg e AB HUT"
bei
\w
sind auch die Ziffern mit dabeiDas wäre aber doch egal, da anschließend ohnehin beliebig viele Ziffern folgen dürfen, oder?
Nein, da wäre AB45w44
auch möglich.
Bis demnächst
Matthias
Hallo Matthias,
Deine Regex passt., danke. Wobei... sie matcht auch "husdfg e AB HUT"
Ok, dann matcht eben "AB HUT husdfg e ", was aber auch falsch wäre. Aber ich glaube, dass das nicht Dein Fehler war, sondern meiner Beschreibung entspricht. "Beliebing viele Ziffern" sollte tatsächlich >= 1 Ziffer bedeuten.
bei
\w
sind auch die Ziffern mit dabeiDas wäre aber doch egal, da anschließend ohnehin beliebig viele Ziffern folgen dürfen, oder?
Nein, da wäre
AB45w44
auch möglich.
Eigentlich dachte ich, dass \w nur ein einziges Zeichen zuläßt und da wäre mir egal, ob es eine Ziffer oder ein Buchstabe ist.
Muß ich denn dann AB\w{1}\d+\b schreiben?
Pit
Hallo Pit,
Nein, da wäre
AB45w44
auch möglich.Eigentlich dachte ich, dass \w nur ein einziges Zeichen zuläßt und da wäre mir egal, ob es eine Ziffer oder ein Buchstabe ist.
Ja, richtig, mein Fehler.
Bis demnächst
Matthias
@@Pit
Übrigens matcht anscheinend ^AB\w\d+\b ebenfalls. Jedenfalls bei den Beispielen, die ich versucht habe.
Dann hast du wohl nicht AB1 versucht.
LLAP 🖖
@@Pit
der mit AB beginnt und danach entweder e oder keinen weiteren Buchstaben hat …
Ich dachte an: /[1]\w\d+\b/
Also: String soll mit AB beginnen, gefolgt von einem beliebigen Wortzeichen …
„e oder kein weiterer Buchstabe“ (e?
) ist was ziemlich anderes als „ein beliebiges Wortzeichen“.
LLAP 🖖
AB ↩︎