Ich bin ein einfaches Debugging-Programm zu schreiben, die einfache Zeichenfolgen als Eingabe, die Sterne enthalten einen Platzhalter Match-any anzuzeigenWildcard Matching in Java
*.wav // matches <anything>.wav
(*, a) // matches (<anything>, a)
Ich dachte, ich würde einfach das Muster nehmen, Flucht jeder Sonderzeichen in regulären Ausdrücken, ersetzen Sie dann alle \\*
zurück zu .*
. Und dann verwenden Sie einen regulären Ausdruck Matcher.
Aber ich kann keine Java-Funktion finden, um einen regulären Ausdruck zu entkommen. Die beste Übereinstimmung, die ich finden konnte, ist Pattern.quote
, die aber gerade \Q
und \E
am Anfang und Ende der Zeichenfolge setzt.
Gibt es etwas in Java, mit dem Sie einfach diesen Wildcard-Abgleich durchführen können, ohne dass Sie den Algorithmus von Grund auf neu implementieren müssen?
'Pattern.quote()' und der Rest des Ansatzes sollte gut funktionieren. Was siehst du, was anderes vermuten lässt? –
@MattBall Ich werde mit '\ Q (. *, A) \ E' enden, die nicht mit' (foo, a) 'übereinstimmen, weil' foo' nicht mit dem Literal '. *' Übereinstimmt. –
Ich glaube, ich verstehe falsch, was das Endziel ist. Sie erhalten eine Zeichenfolge wie '* .wav'. Was wird damit passieren? –