Java 字符串字符模式

Java String character Pattern

如何使用正则表达式检查字符串是否仅由字母组成。
我知道如何只检查一个字符:if (s.matches("\w")) System.out.println(true);
但我不明白如何检查完整的字符串。

matches("\w") 替换为 matches("^[A-Za-z]*$")。这应该指示匹配器期望字符串完全由 0 个或多个字母组成(不区分大小写)。

* 表示前面的内容重复零次或多次。另一方面, + 期望至少有一个实例在它之前是什么,因此, * 运算符可能匹配一个空字符串,我不知道它是否是你在追求。

\w 在其表达式中包含数字。你可以做

if (s.matches("[a-zA-Z]*")) {
  ...
}

其中 * 匹配 0 个或多个字符。请注意,此模式也匹配空字符串,因此您可能希望使用 + 量词代替

您可以使用正则表达式匹配 [a-zA-Z] 而不是查找单个字符 w,并添加 + 以指定您需要所有字符。

类似于:

System.out.println(s1.matches("[a-zA-Z]+"));

应该可以解决问题。