正则表达式中的规则定义可分为如下几个方面:
字符结构定义
编辑匹配定义
逻辑运算定义
量词定义
字符结构 | 解释 |
---|---|
. | 任何字符 |
X | 单个字符,包括控制符(\t,\n,\r,\\,\f) |
Xxx | 字符串 |
[abc] | 包含a或b或c的任何单个字符 |
[^abc] | 不包含a或b或c的任何单个字符 |
[a-zA-Z] | 包含英文大小写字母中的任何单个字母 |
\s | 空白符(空格、跳格、回车、换行、换页) |
\S | 非空白符 |
\d | 数字(0~9) |
\D | 非数字 |
\w | 文本字符,[a-zA-Z_0~9]中的任何一个字符 |
\W | 非文本字符 |
注意:为了使Java编译器识别,在以“\”开始的字符串定义中必须再加上一个“\”,说明跟随的是正则表达式对字符的定义符。正则表达式必须用双括号括起来。
定义 | 解释 |
---|---|
^B | 必须以B开始。B为任何字符、字符串。 |
B$ | 必须以B结束。B为任何字符、字符串。 |
定义 | 解释 |
---|---|
XY | X后跟随Y |
X\Y | X或者Y。X、Y为任何字符、字符串。 |
定义 | 解释 |
---|---|
X? | 匹配空字符串,或最多匹配一个X。 |
X* | 匹配空字符串,或一个到多个X。 |
X+ | 匹配一个或者多个X。 |
X{n} | X必须重复n次。 |
X{n,} | X至少重复n次。 |
X{n,m} | X至少重复n次,但不多于m次。 |
下面给出一个实例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RegularExpress {
public static void main(String[] args) throws IOException {
System.out.print("请输入您的邮箱:");
try(BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in))) {
String strInput = buffReader.readLine();
if (strInput.matches("(\\w+)(.\\w+)*@(\\w+\\.)(com|edu|net|org|gov|cn)")) {
System.out.println("恭喜您,通过验证!");
}
else {
System.out.println("输入不合法,请重新输入!");
}
}
}
}
运行结果如下:
请输入您的邮箱:614106917@qq.com
恭喜您,通过验证!