为了账号安全,请及时绑定邮箱和手机立即绑定

检查字符串是否没有字母

检查字符串是否没有字母

慕慕森 2022-12-28 14:40:04
我试图找出字符串是否只有数字和特殊字符。我试过下面的代码,但它不工作String text="123$%$443";String regex = "[0-9]+";String splChrs = "-/@#$%^&_+=()" ;if ((text.matches(regex)) && (text.matches("[" + splChrs + "]+"))) {  System.out.println("no alphabets");}
查看完整描述

4 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

只需排除使用^字母:

[^a-zA-Z]+

演示


查看完整回答
反对 回复 2022-12-28
?
慕森王

TA贡献1777条经验 获得超3个赞

如果你想检查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\本身必须转义。


查看完整回答
反对 回复 2022-12-28
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

以下是可能适用于各种要求的几种解决方案:


文本不得包含纯 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


查看完整回答
反对 回复 2022-12-28
?
忽然笑

TA贡献1806条经验 获得超5个赞

在 Java 正则表达式中,'match' 和 'find' 是不同的方法。如果您的字符串只包含您想要查找的字母,请使用 'find'。或者如果您想要匹配整个字符串,请使用 'match'



查看完整回答
反对 回复 2022-12-28
  • 4 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信