Kotlin удалить все не буквенно-цифровые символы

Я пытаюсь удалить все не алфавитно-цифровые символы из строки.

Я попытался с помощью replace() С regex как следовать:

var answer = answerEditText.text.toString()
Log.d("debug", answer)
answer = answer.replace("[^A-Za-z0-9 ]", "").toLowerCase()
Log.d("debug", answer)

D / debug: тест. заменить

D / debug: тест. заменить

почему знаки препинания все-таки присутствует? Как получить только буквенно-цифровые символы?

1 ответов


вам нужно создать объект regex

var answer = "Test. ,replace"
println(answer)
answer = answer.replace("[^A-Za-z0-9 ]", "") // doesn't work
println(answer)
val re = Regex("[^A-Za-z0-9 ]")
answer = re.replace(answer, "") // works
println(answer)

попробуйте онлайн: https://try.kotlinlang.org/#/UserProjects/ttqm0r6lisi743f2dltveid1u9/2olerk6jvb10l03q6bkk1lapjn