Java 检查字符串是否没有字母表
我试图找出字符串是否只有数字和特殊字符 我尝试了下面的代码,但它不工作Java 检查字符串是否没有字母表,java,regex,Java,Regex,我试图找出字符串是否只有数字和特殊字符 我尝试了下面的代码,但它不工作 String text="123$%$443"; String regex = "[0-9]+"; String splChrs = "-/@#$%^&_+=()" ; if ((text.matches(regex)) && (text.matches("[" + splChrs + "]+"))) { System.out.println("no alphabets"); } 如果要检查文本
String text="123$%$443";
String regex = "[0-9]+";
String splChrs = "-/@#$%^&_+=()" ;
if ((text.matches(regex)) && (text.matches("[" + splChrs + "]+"))) {
System.out.println("no alphabets");
}
如果要检查
文本
是否不包含任何字母[A-Za-z]
,请尝试以下操作:
if (!text.matches("[A-Za-z]+")) {
System.out.println("no letters");
}
String regex = "[0-9\\-/@#$%^&_+=()]+";
if (text.matches(regex)) {
System.out.println("no letters");
}
如果要检查
文本是否仅包含数字和给定的特殊字符,请尝试以下操作:
if (!text.matches("[A-Za-z]+")) {
System.out.println("no letters");
}
String regex = "[0-9\\-/@#$%^&_+=()]+";
if (text.matches(regex)) {
System.out.println("no letters");
}
请注意,-
必须由一个\
进行escpad,它本身必须转义。只需使用^
排除字母:
[^a-zA-Z]+
请参见以下几种可能适用于各种需求的解决方案:
文本不能只有ASCII字母
if (text.matches("\\P{Alpha}+")) {
System.out.println("No ASCII letters");
}
文本不能有来自整个BMP平面的字母
if (text.matches("\\P{L}+")) {
System.out.println("No Unicode letters");
}
文本必须没有
*注意:IsAlphabetic
类包括L
、Nl
(字母编号)和其他字母
类别,可能过于宽泛,但如果需要检查字母和变音符号,则可以使用
String#matches
方法需要完整的字符串匹配,因此在上述代码段中不使用锚(^
/\a
和$
/\z
)在java正则表达式中,“match”和“find”是不同的方法。如果字符串中只包含要查找的字母,使用“查找”。或者如果要匹配整个字符串,请使用“匹配”什么是“没有字母表”?如果您的意思是“不包含字母”,则只需检查它是否包含字母,其中您的两个正则表达式和逻辑&&
不检查文本是否包含字母[a-z]
。只有英文字母或任何字母?必须对所有文本-->^[^a-zA-z]进行此检查+$@leMandarin但方法在匹配整个字符串双引号时返回true“这也是一个特殊字符,如何添加它?如何添加反斜杠\String regex=“[0-9\\-/@~\\$%!^&'*,-./:\”`;?{}124; u+=()\\ s]+”;我现在这样使用,我必须添加反斜杠\和方括号[]。如何添加它?并告诉我是否遗漏了任何特殊字符。