regex 为什么这个正则表达式不验证特殊字符?

lyr7nygr  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(132)

此问题在此处已有答案

Regex doesn't match in Kotlin(1个答案)
Regex pattern error on API 21(android 5) and below(1个答案)
16天前关门了。
为什么下面的正则表达式在Kotlin中不验证特殊字符?什么构成特殊字符?

private fun validateSpecialCharacter(password: String): Boolean =
        password.matches(Regex("[!@#\$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]"))

字符串

ikfrs5lh

ikfrs5lh1#

如果整个字符串匹配正则表达式,则使用CharSequence.matches(regex)返回True。给定您的代码,看起来好像您希望您的函数返回True,只要有匹配正则表达式的出现。
使用CharSequence.contains(regex)应该会得到你想要的结果。你的代码变成:

private fun validateSpecialCharacter(password: String): Boolean =
        password.contains(Regex("[!@#\$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]"))

字符串

相关问题