Java的String.matches方法的正则表达式?

2022-09-03 18:32:42

基本上我的问题是这样的,为什么是:

String word = "unauthenticated";
word.matches("[a-z]");

返回 false?(开发于java1.6)

基本上,我想看看传递给我的字符串中是否有alpha字符。


答案 1

该函数将正则表达式与整个字符串进行匹配(就像正则表达式在开头和结尾一样)。如果要在字符串中的某个位置搜索正则表达式,请使用 Matcher.find()。String.matches()^$

正确的方法取决于您要执行的操作:

  1. 检查输入字符串是否完全由字母字符(String.matches()[a-z]+)
  2. 检查您的输入字符串是否包含任何字母字符(可能还有其他一些)(Matcher.find()[a-z])

答案 2

您的代码正在检查该单词是否与一个字符匹配。您要检查的是该单词是否匹配任意数量的字母字符,如下所示:

word.matches("[a-z]+");