发布于2026-07-28 阅读(0)
扫一扫,手机访问
在Ja va正则表达式里,中括号 [] 是一个相当常用且强大的工具——它用来定义一个字符集(character class),说白了就是匹配括号内的任意一个字符。那么,[] 具体怎么用?来看看几个最基础的用法,顺便熟悉一下它的小脾气。

匹配特定字符:[abc] 就能匹配到 'a'、'b' 或 'c' 中的任意一个,简单直接。
范围表示:用连字符 - 表示范围,比如 [a-z] 匹配所有小写字母,[A-Z] 匹配大写字母,[0-9] 匹配数字。这招特别省事。
组合使用:把多个范围拼在一起,比如 [a-zA-Z] 匹配任何字母(大小写都行),[a-zA-Z0-9] 则匹配字母或数字,覆盖常见需求。
排除特定字符:在左括号后面加个 ^,就变成了“除了这些”。例如 [^abc] 匹配除 'a'、'b'、'c' 之外的任何字符,[^0-9] 匹配任何非数字。
特殊字符的“退化”:在字符集内部,很多原本在正则中有特殊意义的字符(比如 .、*、+、?)都变成了普通字符,直接匹配自己。但有两个例外:^ 和 - 在特定位置有特殊含义(如上所述),而 \ 仍然肩负转义使命。
转义字符:如果字符集中想包含 ]、-、^ 或 \ 本身,需要用反斜杠转义。比如 []] 匹配一个右方括号(前面的 ] 是转义后的,后面的 ] 作为字符集结束符,写法有点绕,但熟练了就好)。
连续范围:一个字符集里可以定义多个范围,比如 [a-zA-Z0-9_] 匹配任何字母、数字或下划线,非常实用。
下面给个实战场景:检查一个字符串是否只包含小写字母或数字。用 Ja va 代码来演示,一看就懂:
import ja va.util.regex.Pattern;
import ja va.util.regex.Matcher;
public class RegexExample {
public static void main(String[] args) {
String pattern = "^[a-z0-9]+$";
Pattern r = Pattern.compile(pattern);
// 测试字符串
String testString1 = "hello123";
String testString2 = "Hello123";
// 创建 matcher 对象
Matcher m1 = r.matcher(testString1);
Matcher m2 = r.matcher(testString2);
if (m1.find()) {
System.out.println("testString1: " + testString1 + " 匹配");
} else {
System.out.println("testString1: " + testString1 + " 不匹配");
}
if (m2.find()) {
System.out.println("testString2: " + testString2 + " 匹配");
} else {
System.out.println("testString2: " + testString2 + " 不匹配");
}
}
}
这里用的正则 ^[a-z0-9]+$ 表示“从头到尾整个字符串只能由小写字母或数字组成”。如果字符串符合条件,输出“匹配”,否则“不匹配”。注意 find() 方法其实只查找是否存在匹配的子串,想确保整个字符串完全匹配,应该用 matches() 方法,这个细节很多人容易搞混。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8