是一个第三方的规则,主要是用来匹配字符串的格式,不是Java中的内容,几乎所有的编程语言都会为这个正则表达式预留接口用于正则表达式的使用。
具体的语法可以参阅文档,在平时使用中通常会去网上查找,正则表达式没有完美的,其实就是一个匹配的规则。
网站
http://tool.chinaz.com/regex/
步骤:
1.明确正确的匹配结果
2.利用正则表达式的语法去写
举例 qq号:
要求:
1.qq号的长度
2.不能以0开头
3.只能是数字
例:
1-9
结果分析
[ 1-9 ] - 以1~9数字开头
( )用于分组
[ 0-9 ]{5,11} - 任何以主子可以出现5~11次
手机号码:
0?(13|14|15|17|18|19)[0-9]{9}
0? - 出现一次或者0次
(13|14|15|17|18|19) - 分组 - 手机号的开头两个数字
[0-9]{9} - 从第三个手机号码开始就可以随便写,有9个数字
Java中对正则表达式是支持的,regex - 匹配字符串的规则
这里使用方法是字符串中的:
boolean match(String regex):
被匹配的字符串调用的方法,接收正则表达式字符串,如果匹配则返回true,不匹配则返回false
String[ ] split(String regex):
根据正则表达式的匹配来返回字符串类型的数组,如果符合就匹配为分隔符,将一个完整的字符串通过这些分隔符切割为不同的字符串
手机号例和字符串例:
package Test17_Demo.Demo02;/*
@create 2020--12--07--10:21
*/
public class RegexDemo {
public static void main(String[] args) {
//验证手机号
String phoneString = "18271494972";
//准备一个正则表达式
String regex = "0?(13|14|15|17|18|19)[0-9]{9}";
//进行匹配
boolean flag = phoneString.matches(regex);
System.out.println(flag);
System.out.println("===========");
String s = "lilei love hanmeimei ";
/*//准备一些规则
String sRegex = ",";//失败*/
//String sRegex = "[ ,]";//匹配的是空格或者是,(逗号) - 空格保留
//String sRegex = " ";//根据空格切割 - 空格保留
String sRegex = " +";//匹配一个或者是多个空格字符 - 空格全部替换掉了
//尝试切割
String[] StringArray = s.split(sRegex);
for (int i = 0; i < StringArray.length; i++) {
System.out.println(StringArray[i]);
}
}
}