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]+"));
应该可以解决问题。
如何使用正则表达式检查字符串是否仅由字母组成。
我知道如何只检查一个字符: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]+"));
应该可以解决问题。