正则表达式的概念和简单使用

正则表达式
是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则,有自己的特殊应用。
作用
比如邮箱注册,邮箱有用户名和密码,一般会对其限制长度,这个限制长度就是正则表达式做的。
String类提供了matches和split方法可以实现一些正则的需求.

案例:校验QQ号码

要求:
1.必须输5-15位数字
2.0不能开头
3.必须都是数字

public static void main(String[] args){
//[1-9]:第一个字母必须是1-9中的一个
//\\每一个字母必须是数组
//{4,14}除了第一个之外后边的长度必须在4-14之间(加上第一个就是5-15)
String regex="[1-9]\\d{4,14}";
System.out.println("1234560".matches(regex));
}

正则表达式摘要

1.字符类

2.预定义字符,\x本来就为某个正则表达式,但是java中要想得到\,需要转义,即\x

.:匹配任何字符;匹配一个字符
\d:匹配数字[0-9];匹配单个字符
\D:匹配非数字[^0-9];匹配单个字符
\s:匹配空白字符(空格键和tab键均可);匹配单个字符
\S:匹配非空白字符[^\s];匹配单个字符
[\w]:a到z或A到Z或_或0到9(匹配英文字母,数字和下划线),即[a-zA-Z_0-9];匹配一个字符
[\W]:[^\w];匹配一个字符

3.数量词,X代表泛指

X?:一次或一次也没有
X*:零次或者多次,字符串中只能有a或者空格,不能有其他字符如abc就是false
X+:一次或多次,至少有一次出现
X{n}:恰好n次
X{n,}:至少n次
X{n,m}:至少n次,但是不超过m次

正则表达式的分割

案例1,用“-”拆分数字

String s="11-23-56-98-56";
String[] arr=s.split("-");//以“-”进行拆分
for(String str:arr){
System.out.println(str);
}

案例2:用“.”拆分数字

String s="11.23.56.98.56";
String[] arr=s.split("\\.");//以“.”进行拆分,因为.是匹配任意字符,所以需要转义
for(String str:arr){
System.out.println(str);
}

案例3:把给定的字符串中的数字排序

String s="91,27,56,98,42,120";
//拆分数组
String[] arr=s.split("\\s");//或者s.split(" ")
//转成int数组
int[] is=new int[arr.length];
for(int i=0;i<arr.length;i++){
is[i]=Integer.parseInt(arr[i]);
}
//排序
Arrays.sort(is);
//拼接回字符串
String newStr="";
for(int i=0;i<is.length;i++){
newStr+=is[i]+" ";
}
System.out.println(newStr);

正则表达式的替换

public String replaceAll(String regex,String replacement)

案例:将字符串中的520全部换成我爱你

String s="520 java 520 python 250 c";
s=s.replaceAll("\\d{3}","我爱你");//或s.replaceAll("520","我爱你");
System.out.println(s);
发布了89 篇原创文章 · 获赞 0 · 访问量 1531

猜你喜欢

转载自blog.csdn.net/ShiZaolin/article/details/104305224