- 正则表达式定义了字符串的模式。
- 正则表达式可以用来搜索、编辑或处理文本。
- 正则表达式并不限于某一种语言,但是在每种语言中有细微的差别。
正则表达式实例
一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配"Hello World"字符串。
. (点号) 也是一个正则表达式,它匹配任何一个字符如:“a"或"1”
String 支持正则表达式
.reoplaceAll()
.split()
两个有关正则表达式简单小程序
//判断是不是手机号
String phone="15022222222";
String pattern="^1[3,5,7]\\d{9}$";
if (phone.matches(pattern)){
System.out.println("yes");
}else{
System.out.printf("手机号:%s不是合法的手机号。\n",phone);
}
String name ="li";
String p= "[\u4e00-\u9fa5]+$";//[\u4e00-\u9fa5-zA-Z]+$英文也可以
if (name.matches(p)) {
System.out.println(name);
}else {
System.out.println("姓名必须是纯中文");
}
结果
java.util.regex 包主要包括以下三个类:
- Pattern 类:pattern对象是一个正则表达式的编译反应。Pttern类没有公众的构造方法。要创建一个Pattern对象,你必须首先调用其公共静态编译方法,它返回一个pattern对象。该方法接受一个人正则表达式作为它的第一个参数。
- Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样,Matcher也没有公共构造方法。你需要调用Pattern对象的matcher方法来获得一个Matcher对象。
- PatternSyntaxExceeption:PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
正则表达式基本语法规则
字符 | 说明 |
---|---|
^ | 表达式的开始 |
$ | 表达式结尾 |
[3,5,7,a-z] | 一个符号,符号范围在3,5,7,a-z |
\d===[0-9] | 代表一位数字 |
\d+ | 代表1个数字,或多个数字 |
\d{3} | 代表3个数字 |
[\u4e00-\u9fa5]{2,8} | 代表2到8个汉字字符 |
* | 代表0个或多个前边的符号 |
. | 代表一个任意的符号 |
+ | 代表一个或多个前边的符号 |
? | 代表0个或1个前边的符号{0,1} |
{n} | n个 |
{n,} | n个或多个 |
{m,n} | 两者之前的个数 |
\D | [^0-9] |
\w | [a-zA-Z0-9] |
\W | [^a-zA-Z0-9] |
(|) | 正则表达式分组功能 |