Java正则表达式:只能是数字
在Java中,如果你想使用正则表达式来验证一个字符串是否只包含数字,有几种方法可以实现:

简单数字验证(0-9)
String regex = "^[0-9]+$";
^表示字符串开始[0-9]表示任意数字字符- 表示一个或多个
- 表示字符串结束
使用 \d 简化表示
String regex = "^\\d+$";
\d是[0-9]的简写形式- 需要双反斜杠
\\因为在Java字符串中反斜杠是转义字符
完整示例代码
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class NumberValidator {
public static boolean isNumeric(String str) {
String regex = "^\\d+$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
public static void main(String[] args) {
System.out.println(isNumeric("12345")); // true
System.out.println(isNumeric("12a45")); // false
System.out.println(isNumeric(" 123")); // false (包含空格)
System.out.println(isNumeric("")); // false (空字符串)
}
}
其他常见变体
允许正负整数
String regex = "^-?\\d+$";
允许浮点数
String regex = "^\\d+(\\.\\d+)?$";
只允许特定长度的数字
// 例如5位数字
String regex = "^\\d{5}$";
允许数字开头和结尾的空格(然后去除空格验证)
String regex = "^\\s*\\d+\\s*$";
选择哪种正则表达式取决于你的具体需求,最基本的"只能是数字"验证使用 ^\\d+$ 就足够了。

