2015-03-09 27 views
5

Chcę usunąć wszystko między "?" i "/"Usuń wszystko między dwoma znakami

mój tekst jest "hi?0/hello/hi"

muszę zobaczyć się umieścić

"hi?/hello/hi" 

Mój kod jest

key.replaceAll("\\?.*/","?/"); 

ale moje wyjście jest

"hi?/hi" 

whats źle?

+0

Nie mogę zrobić to z podziałem lub czymś innym – user298582

Odpowiedz

6

Używasz chciwego dopasowywania, więc pasuje również do następnego ukośnika. Spróbuj:

key.replaceAll("\\?.*?/","?/"); 

Alternatywą wciąż przy chciwy dopasowania jest dopasowanie dowolny znak oprócz /:

key.replaceAll("\\?[^/]*/","?/"); 
5

użyj:

key.replaceAll("\\?.*?/","?/") 

Możesz przeczytać więcej o greedy i non greedy pasującego here

Powiązane problemy