Fehler gefunden. Teststrings begannen fälschlicherweise mit einem Leerschlag.
[STRIKE]Die Idee ist einfach.
Ich krieg einen String mit wildcards % für "irgendwelche Chars", _ für "genau ein Char" und möcht herausfinden, ob ich einen anderen String mit diesem pattern hab.
Nun hab ich mit regex absolut nichts am Hut.
Beim Überfliegen eines Tutorials ist aber hängen geblieben, dass "." für "genau einen char" steht und ich das mit ".*" zu "beliebig viele chars" machen kann.
Klingt simpel.
Mein Ansatz also:
Führ ich einen test aus mit test("M%"), stellt sich heraus, dass:
Was mich insofern wundert, als "M.*" eigentlich funktioniert, wenn ich es auf Regex101 ausprobier...
Mag mir wer helfen?[/color][/STRIKE]
[STRIKE]Die Idee ist einfach.
Ich krieg einen String mit wildcards % für "irgendwelche Chars", _ für "genau ein Char" und möcht herausfinden, ob ich einen anderen String mit diesem pattern hab.
Nun hab ich mit regex absolut nichts am Hut.
Beim Überfliegen eines Tutorials ist aber hängen geblieben, dass "." für "genau einen char" steht und ich das mit ".*" zu "beliebig viele chars" machen kann.
Klingt simpel.
Mein Ansatz also:
Java:
public void test(String input){
String regex = input.replace("%", ".*").replace("_",".");
String candidate;
while(candidate = getMeSomething()){
if(candidate.matches(regex))
doSomething();
}
}
Führ ich einen test aus mit test("M%"), stellt sich heraus, dass:
Code:
Fred.matches(M.*) ==> false
Mike.matches(M.*) ==> false
Martin.matches(M.*) ==> false
Billy.matches(M.*) ==> false
Momo.matches(M.*) ==> false
Was mich insofern wundert, als "M.*" eigentlich funktioniert, wenn ich es auf Regex101 ausprobier...
Mag mir wer helfen?[/color][/STRIKE]
Zuletzt bearbeitet: