Piszę prosty program debugowania, do którego wprowadzany prostych ciągów, które mogą zawierać gwiazdki aby wskazać wieloznaczny mecz każdyWildcard dopasowanie w Javie
*.wav // matches <anything>.wav
(*, a) // matches (<anything>, a)
myślałem, że po prostu przyjąć, że wzór, ucieczka dowolny Wyrażenia regularne w nim, a następnie zastąp każdy \\*
powrotem do .*
. A następnie użyj wyrażeń regularnych.
Ale nie mogę znaleźć żadnej funkcji Java, aby uciec od wyrażenia regularnego. Najlepszym dopasowaniem, jakie mogłem znaleźć, jest Pattern.quote
, które jednak po prostu umieszcza \Q
i \E
na początku i końcu łańcucha.
Czy jest coś w języku Java, które pozwala po prostu zrobić dopasowanie z użyciem symboli wieloznacznych bez konieczności implementowania algorytmu od początku?
'Pattern.quote()' i reszta twojego podejścia powinien działać dobrze. Co widzisz, co sugeruje coś innego? –
@MattBall Kończę się '\ Q (. *, A) \ E', które nie pasuje do' (foo, a) ', ponieważ' foo' nie pasuje do literału '. *'. –
Myślę, że źle rozumiem, jaki jest ostateczny cel. Otrzymasz ciąg, taki jak '* .wav'. Co się z tym stanie? –