Java字符串字符模式

时间:2015-04-20 15:26:19

标签: java match

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

类似的东西:

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

应该这样做。