Forum: PC-Programmierung Regex String startswith


von guelay (Gast)


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ß

von S. R. (svenska)


Lesenswert?

Wie wäre es mit "^T#[0-9].*MS$"?

Dürfte vermutlich nicht das sein, was du willst, aber es entspricht 
deiner Beschreibung. Wichtig sind die Ankerzeichen ^ (Stringanfang) und 
$ (Stringende).

von TotoMitHarry (Gast)


Lesenswert?

Zeilanfang ^ Zeilenende $, nix String.

T[#]{0,1}\d+MS

Welche Programmiersprache.. Es können sich je nach Kompliziertheit 
zwischen C,Java oder javascript unterschiedliche Matches ergeben.

von 🐧 DPA 🐧 (Gast)


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.

von fop (Gast)


Lesenswert?

"^(T(#([0-9]([0-9](MS?)?)?)?)?)?$"

von nicht"Gast" (Gast)


Lesenswert?

Sorry, wenn ich blöd frage,

warum sollte jemand so was cryptisches in eine Textbox eingeben müssen?

von TotoMitHarry (Gast)


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.

von fop (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.