加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式总结

发布时间:2020-12-13 23:07:18 所属栏目:百科 来源:网络整理
导读:1、正则表达式概述: 首先是表达式,是一种正确的规则去进行某一种是事物的操作,用于对字符串进行操作的表达式,用于对字符串进行的操作 好处:代码更为简洁、提供了一些符号来表示一些规则,其实这个规则内部还是有具体的代码来完成对字符串操作。简单说:

1、正则表达式概述:

首先是表达式,是一种正确的规则去进行某一种是事物的操作,用于对字符串进行操作的表达式,用于对字符串进行的操作

好处:代码更为简洁、提供了一些符号来表示一些规则,其实这个规则内部还是有具体的代码来完成对字符串操作。简单说:好像是将代码进行封装、用符号进行了替代。

弊端:正因为是符号表示的,所以要记住很多符号的使用,而且符号多了阅读性极差。

eg:对QQ号码进行校验

要求:1、必须是5到15位。

2、必须是数字

3、0不可以开头

String qq="178266871";

String regex="[1-9][0-9]{4,14}";这就是规则,作用在字符串上的规则。

Boolean b=qq.matches(regex);

2、正则表达式常见体现:

其实就是一些常见符号的注解,必须要了解,学习正则,其实就是在学习这些符号的使用。

字符类:

[abc]:要是a或者b或者c

[^bac]:除了abc什么都行

[a-zA-Z]必须是字母

[a-b[m-p]]:a到b或者m到p

预定义字符:

.:任何字符,与行结束符可能匹配也可能不匹配

d:数字[0-9]它是一个符号,不要以为是两个符号,不是转义。

D:非数字[^0-9]

s:空白字符

S:非空白

w:单词字符,[a-zA-Z_0-9]字符数字下划线

W:非单词

边界匹配器:

b:单词边界

数量词

X?:一次或者一次也没有

X*:没有或有多次

X+:必有有一次或者多次

X{n}:恰好n次

X{n,}:至少n次

X{n,m}:n到m次之间

3、正则表达式常用的功能:(重点)

1、匹配:

其实是用的就是String类中的matches方法,将正则作用到指定的字符串上判断该字符串是否符合规则,返回真假。

public static void checkTel(){

String tel="13802920021";

Boolean b=tel.matches(regex);

String regex="1[358][0-9]{9}";

//String regex="1[358]d{9}";

}

注意:在字符串中单代表的是转义字符,所以为了保持原样必须把它表示原样性用来表示。

2、切割:

其实就是使用的是String类中的split方法,将字符串按照指定的规则,变成一个字符数组,凡是参数是regex都是正则。

Eg:切割字符串


public static void splitString(){

String str="lisi.wangwu.zhaoliu";

String regex=".";

String[] arr=str.split(regex);

for(String s:arr){

System.out.println(s);

}

}

3、替换:

其实用的是String类中的replaceAll()方法

str="acdxxxxxxshdsYYYYsdahj";叠词替换成一个字

str=str.replaceAll("(.)1+","$1");

4、获取:

其实就是使用了正则表达式对象,java.util.Pattern.

1、先将正则表达式编译成Pattern对象

2、将Pattern对象将和要匹配的字符串关联,获取对应的匹配器对象。

Matcher

3、通过匹配器对象Matcher对字符串进行操作了。

public static void getString(){

String str="da jia zhu yi le,ming tian bufang jia";

String regex="b[a-z]{3}b";b:单词边界

Pattern p=Pattern,compile(regex);

p.mecther(str);

Matcher m=p.matcher(str);

While(m.find){

System.out.println(.m.group);//group方法可以返回查找到的子序列、

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读