Hallo,
ich möchte meine Dateinamen mit einen RegularExpressions Pattern testen lassen.
Dabei habe ich z.B. folgende Dateinamen: Autrag Mueller 12.doc
Regex regex = new Regex("[A-Za-z]{5} [A-Za-z] [0-9]{2}.[A-Za-z]{3}");
bool x = regex.IsMatch("Autrag Mueller 12.doc");
Leider ist das Match false. Mmmmmh.
Kann mit jemand bei dem Pattern helfen?
Danke
cb666
Hallo cb666,
Kann mit jemand bei dem Pattern helfen?
ja, der On-the-fly Regex-Tester: Regex-Lab
herbivore
Wenn man sich nicht mit Regex auskennt hilft einem der leider auch nicht.
Hallo ZiMD,
ich verstehe deinen Einwand nicht. Wenn er Regex nicht kann, kann er auch nicht beurteilen, ob dein Pattern der richtige ist (ich übrigens auch nicht, weil ich das gewünschte Format nicht kenne). Wenn man also Regex nicht kann, hat man immer ein Problem. Außerdem hat er ja schon einen Pattern angefangen, der nur noch nicht ganz passt. Und dafür ist On-the-fly Regex-Tester: Regex-Lab genau das richtige.
herbivore
Original von herbivore
Außerdem hat er ja schon einen Pattern angefangen, der nur noch nicht ganz passt.
So kann mans auch nennen 😉
Ich denke ein gutes Buch bzw http://de.wikipedia.org/wiki/Regex hilft ihm eher weiter wenn er die Grundlagen noch nicht kennt.
Hallo ZiMD,
So kann mans auch nennen
naja, soweit weg vom Match war der Pattern ja nun nicht. Minimalinvasiv sind nur folgende Änderungen nötig:
[A-Za-z]{6} [A-Za-z]{7} [0-9]{2}****.[A-Za-z]{3}
Ansonsten stimme ich dir zu, dass man die Grundlagen von Regex kennen sollte und das mein Tools diese Grundlagen nicht ersetzen kann. Nur habe ich aufgrund des Pattern auf ausreichende Grundlagen für die Benutzung des Labs geschlossen.
Um sich die Grundlagen anzueignen reicht eigentlich schon die (fast) immer sehr gute SDK-/MSDN-Doku: Reguläre Ausdrücke von .NET Framework.
herbivore
moin
wie man beim Regex String des Posters erkennen kann hat er die Grundlagen drauf
bei ersten überfliegen sah man aber bereits das der zweite bereich kein anzahl angegeben hat ok und der Erste 6 zeichen lang ist aber trotzdem hätte es passen können
und ob dieser so das richtige für Ihn ist ist halt fraglich ("\w+ \w+ \d+.\w{3}")
(s s 1.bat) Match
mfg
Original von herbivore
[A-Za-z]{6} [A-Za-z]{7} [0-9]{2}****.[A-Za-z]{3}
Deswegen denk ich auch, dass hier eher zusammenkopiert wurde. Warum sollte man es sonnst beim 1. Mal fast richtig machen und beim 2. Mal vergessen?
Hallo ZiMD,
naja, jetzt wirds langsam affig 🙂 Um einen Pattern zusammen zu kopieren, der so nah an einem Match ist, ohne gewisse Grundlagen zu haben, braucht man aber eine Menge Glück. Wenn meine Pattern nicht gleich matchen, dann liegt das jedenfalls an zwei Sachen: Dass ich vergessen habe runde Klammern zu quoten ... oder dass ich an irgendeiner Stelle einen Wiederholungsoperator vergessen habe. 🙂
Davon abgesehen, können wir die Diskussion auch gerne beenden, weil wir beide unsere Vorschläge gemacht haben und cb666 ja aus den verschiedenen Vorschlägen, den oder die für sich passenden aussuchen kann.
Lustig ist auch das cb666 hier fleißig mitliest, ohne mal ein klärendes Wort zu schreiben. 🙂
herbivore
erstmal danke.
ich fuchse mich gerade in die regulären ausdrücke rein.
den On-the-fly Regex-Tester Regex-Lab hab ich mir jetzt erstmal gezogen.
\w ist übrigens das gleiche wie [A-Za-z0-9_]
Sprich alphanumerische Zeichen und Unterstrich
e.f.q.
Aus Falschem folgt Beliebiges
Hallo Traumzauberbaum,
nicht in .NET:
\w
Entspricht einem beliebigen Wortzeichen. Entspricht den Unicode-Zeichenkategorien [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}\p{Lm}]. Wenn mit der ECMAScript-Option ECMAScript-konformes Verhalten angegeben wurde, ist \w gleichbedeutend mit [a-zA-Z_0-9].
herbivore
Nur um das mal zu übersetzen:
\p{Ll} "Letter, Lowecase"
\p{Lu} "Letter, Uppercase"
\p{Lt} "Letter, Titlecase"
\p{Lo} "Letter, Other"
\p{Lm} "Letter, Modifier"
\p{Nd} "Number, Decimal Digit"
\p{Pc} "Punctuation, Connector"
Also alle Arten von Buchstaben, Ziffern und "Verbinder"
Also bei normalen Strings das gleiche wie [a-zA-Z_0-9], nur bei Unicode Strings sind es noch mehr. Wird nur fälschlicherweise oft (und wohl auch hier von einigen) als Buchstabe angenommen.
e.f.q.
Aus Falschem folgt Beliebiges