Регулярное совпадение всегда возвращает false - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь проверить ввод пользователя, чтобы единственными допустимыми символами в строке были A-Z, a-z, _, - и пробел. Для этого я написал следующий код:

val regex = Regex("[\\w\\s-]")
val flag = regex.matches("Hello Overlay")

Но значение flag ложно, и я не могу понять, почему.

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Чтобы соответствовать всей строке, соответствующей шаблону, используйте

val regex = Regex("[\\w\\s-]+")

Или, чтобы избежать переоткрытия:

val regex = Regex("""[\w\s-]+""")

См. Демоверсию Kotlin . Обратите внимание, что matches требует полного совпадения строк, но [\w\s-] соответствует только одному символу.

val regex = Regex("""[\w\s-]+""")
val flag = regex.matches("Hello Overlay")
println(flag)  // => true
0 голосов
/ 04 июня 2019
val regex = Regex("""[\w\s-]+""")
val flag = regex.matches("Hello Overlay")
println(flag)  // => true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...