正则表达式
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
简单化理解(雷Jack):
##常用的正则表达式特定的字符
[ ]表示任意一个
[a-z]表示a-z字母中的其中一个字母
“ - ”表示在 [ ]中的范围
[a-z]+表示a-z字母中的1个或多个字符
?表示0个或1个
[a-z]?表示0个或多、1个字符a-z中的字母
&&表示鱼的关系
^^除了a-z任何一个匹配的字符
[ ^ a-z]除了a-z任何一个匹配的字符
预定义字符集
数量词
分组
/**
* 测试正则表达式
*/
@Test
public void m1(){
String regex = "[a-z]";
System.out.println("ux".matches(regex));
System.out.println("………………改变匹配模式-1-………………");
regex = "[a-z]+";//表示1个或者多个
System.out.println("ux".matches(regex));
System.out.println("………………改变匹配模式-2-………………");
regex = "[a-z]*";//表示0个或者多个
System.out.println("gjhgj".matches(regex));
System.out.println("………………改变匹配模式-3-………………");
regex = "[a-z]?";//表示0个或者1个
System.out.println("".matches(regex));
System.out.println(" ".matches(regex));
System.out.println("h".matches(regex));
System.out.println("………………改变匹配模式-5-………………");
regex = "[^a-z]";//表^除了a-z任何一个匹配的字符
System.out.println("(".matches(regex));
}
/**
* 测试正则表达式数量词+预定义字符集
*/
@Test
public void m3(){
//匹配手机号
String r1 = "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]";//这是数量词
//预定义字符集以下
String r2 = "\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d";//\是特殊字符,所以是\\,
String r3 = "\\d{9}";
System.out.println("18748763367".matches(r2));
}
/**
* 测试匹配邮箱
*/
@Test
public void m4(){
/**
*1373765551@qq.com
*/
String regex = "\\w+@\\w{2,5}\\.com";
System.out.println("1373765551@qq.com");
}
/**
* 测试手机号码(+86)可有可无
*/
@Test
public void m5(){
//"\s"表示空白字符
String regex = "(\\+86)\\s*\\d{11}";
System.out.println("+86 18748763367".matches(regex));
}
边界匹配
(可读性比较好)