Regex String startswith

Gast #6536910
Lesenswert?

Hallo zusammen,

Ich habe 1h gegogelt und regexr.com probiert, kriegs aber nicht hin... 
Ich habe beispielsweise den folgenden Text:

"T#10MS"

Beim Eintragen in ein TextBox möchte ich prüfen ob die Eingabe in der 
richtigen Reihenfolge ist. D.h. IsMatch() soll mir true zurückgeben, 
wenn ich T oder T# eintrage. IsMatch soll false zurück geben wenn das 
zweite Zeichen ein kein "#" ist oder wenn das dritte Zeichen kein 
integer ist. Die Eingabe endet mit "MS".

kann mir jdm helfen das richtige regex pattern fuer diese Strings zu
finden?

Gruß
Gast #6550043
Lesenswert?

Also ich verstehe das so, er hat Eingaben, die einem Muster entsprechen:
1
^T#?\d+MS$

Aber er will nicht wissen, ob es voll übereinstimmt, sondern ob die 
bereits eingegebenen Zeichen plausibel sind, also in dem Fall 
eigentlich:
1
^(T(#?\d+(MS?)?)?)?$

Ich hatte auch schon einmal eine Situation, wo ich im Grunde nicht match 
vs kein match wissen wollte, sondern kein match, kein match aber 
plausibler Anfang, match & weitere Eingaben möglich, match & keine 
weiteren eingaben möglich. Damals hatte ich keine fertig Lösung 
gefunden, und selbst einen Parser zusammengeschustert. Es würde mich 
daher auch interessieren, ob es da nicht schon irgendwo eine fertige 
Lösung gegeben hätte.
Gast #6550228
Lesenswert?

🐧 DPA 🐧 schrieb:
> Also ich verstehe das so, er hat Eingaben, die einem Muster
> entsprechen:^T#?\d+MS$

von Zeilenanfang und ende war nicht die Rede.. der die TO möchte nur 
true oder false auf ein Textmuster haben.

Da reicht das von mir oben schon, bzw wie er es geschrieben hat sogar 
ohne MS. T mal mit mal ohne Raute und ein Integer. einfacher gehts ja 
nicht.
Gast #6550240
Lesenswert?

TotoMitHarry schrieb:
> von Zeilenanfang und ende war nicht die Rede.. der die TO möchte nur

Doch, doch, sonst könnte man ja irgendwelchen Dummfug vor und/oder 
hinter der Nummer eingeben.

"Du bist doof T#69MS !" soll ja keine erlaubte Eingabe sein. Dafür muss 
man die Optionen so setzen, dass ^ und $ sich auf die ganze Zeichenkette 
und nicht nur auf eine Zeile beziehen.

Was mir auch noch aufgefallen ist, der Fragesteller hat nicht 
spezifiziert, welches Ergebnis ein leeres Eingabefeld ergeben soll.

Und natürlich ist es auch nicht die ergonomischtse Lösung, ewig gleiche 
Zeichen immer wieder eintippen zu lassen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren