将string.all与正则表达式一起使用

时间:2019-10-03 09:47:36

标签: android kotlin

我正在尝试检查字符串是否具有所有禁用字符,例如“ /#$%^&”。 我试图找到一种解决方案,但找不到任何东西,我只想检查字符串中的所有字符是否都与正则表达式模式\ w

相匹配。

string.all似乎很完美,但是我无法为其添加正则表达式模式 这是我正在尝试做的事情:

 // "abce#ios" must return false because it contains #
 // "abcdefg123" must return true 

fun checkForChars(string :String) :Boolean {
    val pattern = "\\w".toRegex()
   return (string.contains(regex = pattern))
}

预先感谢

3 个答案:

答案 0 :(得分:2)

您完全不需要在GetDescription()中使用正则表达式:

all

答案 1 :(得分:1)

您犯了几个错误:

  1. \w模式正好匹配一个字母,如果要匹配零个或多个字母,则需要将其更改为:\w*
  2. 您需要检查它是否与正则表达式匹配,而不是检查字符串是否包含正则表达式。

最终的解决方法如下:

fun checkForChars(string :String) :Boolean {
    val pattern = "\\w*".toRegex()
   return (string.matches(pattern))
}

答案 2 :(得分:1)

您可以使用 Regex("[^/#$%^&]*").matches(string)检查禁止的字符。

您可以在[^...]*结构中包含任何禁止使用的字符。尽管需要筛选"字符,并且需要筛选\字符两次。 Regex("[^\\\\/#$%^&\"]*")

对于\\w*正则表达式,您可以使用Regex("\\w*").matches(string)