正则表达式的总结

               *****正则表达式*****

一:
前言:是一种安全技术,校验字符串是否合法,本身也是一个字符串。

正则表达式:正确的规则组成的一个表达式,它可以去验证其他的字符串数据合法性。

正则表达式式验证字符串:在正则表达式中书写的规则是限字符串不同位置上可以出现哪些字符数据。
二:正则表达式中字符作用
1.字符
这里写图片描述
2.字符类
这里写图片描述
3.预定义字符
这里写图片描述
4.边界匹配器
这里写图片描述
5.数量字符
这里写图片描述

三.正则表达式常用功能
1.匹配功能:使用String类中matches()方法。

boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式。

//匹配
//验证身份证正确性
@Test
public void Text(){

    String idString="412808199511280397";
    String ingex="[1-9][0-9]{5}[12][0-9]{3}"
            + "[01][0-9][0123][0-9]\\d{3}[0-9Xx]";//正则表达式
    if (idString.matches(ingex)) {//验证表达式
        System.out.println("身份证号码正确");
    }else {
        System.out.println("身份证号码错误");
    }
}

这里写图片描述

2.切割功能:使用String类中split()方法。
String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。

//切割
//切割字符串1
@Test
public void Text1(){
    String string="dosd..asjdia.....asdasf..sdasd.dasd....fasf...hu";
    String ingex="(.)\\1+";//正则表达式
    String[] arrayString=string.split(ingex);//分割成字符串组
    for (String string2 : arrayString) {//打印验证
        System.out.print(string2+"  ");
    }
}
//切割字符串2
//  @Test
public void Text2(){
    String string="hds  dasijd   dasif     saas safasf  asasf     sd";
    String ingex=" +";//正则表达式
    String[] arrayString=string.split(ingex);//分割成字符串组
    for (String string2 : arrayString) {
        System.out.println(string2);//打印验证
    }
}
//切割字符串3
//  @Test
public void Text3(){
    String string="helloiiiiworldoooonihao##shijie88wo55like222you";
    String ingex="(.)\\1+";//正则表达式
    String[] arrayString=string.split(ingex);//分割成字符串组
    for (String string2 : arrayString) {//打印验证
        System.out.println(string2);
    }
}

切割结果1:
这里写图片描述

结果2:
这里写图片描述

结果3:
这里写图片描述

3.替换功能:使用String类中replace()方法。
String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement)
使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
String replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement)
使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。

//替换
//替换字符串
@Test
public void Text4(){
    String string="我我我我我我我.....要要要要要....学学..习";
    String ingex="(.)\\1+";
    String string2=string.replaceAll(ingex, "$1");
    System.out.println(string2);
    String ingex2="\\.";
    String string3=string2.replaceAll(ingex2, "");
    System.out.println(string3);
}

运行结果
这里写图片描述

4。获取功能:通过获取对象类进行,其中用到了

Pattern类
public final class Pattern extends Objectimplements Serializable
Matcher
public final class Matcher extends Objectimplements MatchResult

//获取
@Test
public void Text5(){
    String string="hdus13461875066shduhdh12345678"
            + "9hfdfsdfji17737467857dhashd";
    String ingex="1[3456789]\\d{9}";//正则表达式
    Pattern pattern=Pattern.compile(ingex);
    //获取(正则)Pattern类对象并与正则表达式匹配
    Matcher matcher=pattern.matcher(string);//将正则对象与操作对象匹配
    while(matcher.find()){//判断是否找到表达式的要求,找到就输出
        System.out.println(matcher.group());
    }

运行结果:
这里写图片描述

***************************天意无情***********************

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值