检查字符串是否没有字母

我试图找出字符串是否只有数字和特殊字符。


我试过下面的代码,但它不工作


String text="123$%$443";

String regex = "[0-9]+";

String splChrs = "-/@#$%^&_+=()" ;

if ((text.matches(regex)) && (text.matches("[" + splChrs + "]+"))) {

  System.out.println("no alphabets");

}


慕慕森
浏览 85回答 4
4回答

LEATH

只需排除使用^字母:[^a-zA-Z]+看演示

慕森王

如果你想检查text 不包含任何字母[A-Za-z],试试这个:if (!text.matches("[A-Za-z]+")) {  System.out.println("no letters");}如果你想检查text 只包含数字和给定的特殊字符,试试这个:String regex = "[0-9\\-/@#$%^&_+=()]+";if (text.matches(regex)) {  System.out.println("no letters");}请注意,-必须由 a转义,而 a\本身必须转义。

明月笑刀无情

以下是可能适用于各种要求的几种解决方案:文本不得包含纯 ASCII 字母if (text.matches("\\P{Alpha}+")) {  System.out.println("No ASCII letters");}文本必须没有来自整个 BMP 平面的字母if (text.matches("\\P{L}+")) {  System.out.println("No Unicode letters");}文本不得包含字母字符if (text.matches("\\P{IsAlphabetic}+")) {  System.out.println("No alphabetic chars");}*注意:IsAlphabetic该类包括L、Nl(字母编号)和Other_Alphabetic类别,可能过于宽泛,但如果您需要检查字母和变音符号,这很好。该String#matches方法需要完整的字符串匹配,因此上面的代码片段中没有使用锚点( ^/\A和$/ )。\z

忽然笑

在 Java 正则表达式中,'match' 和 'find' 是不同的方法。如果您的字符串只包含您想要查找的字母,请使用 'find'。或者如果您想要匹配整个字符串,请使用 'match'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java