正则表达式(初步了解)

正则表达式(初步了解)

正则表达式:regex

        字符集:
           1、[]:表示括号内的内容任意一个都符合。如[0124]:0,1,2,4都对,[0-4]:0,1,2,3,4
             [0-9,a-z,A-z-]:表示0-9,a-z,A-Z,","-";"-"放在末尾不在表示范围
           2、{}:表示出现的次数。如:{2}:花括号前的字符出现的次数为至少2次;{0,2}:0,1,2次;{3,}:3,...到无穷次
           3、():最高优先级,表示括号内的内容是个整体

           预定义符:
               \d:表示0-9的任意一个数字[0-9]
               \D:表示除了数字之外[^0-9]
               \w:表示数字字母_[0-9a-zA-Z_]
               \W:表示除了数字字母_之外[^0-9a-zA-Z_]
               \s:表示空格[]
               \S: 表示除了空格之外[^ ]
               .: 表示任意字符
               \.:表示点号
               ?:{0,1}可出现或不可出现,只能出现一次
               +:{1,}表示1到无穷
               *:{0,}
               \:表示转义字符
               ?!:表示不能以什么(!后面的字符)开头
               (?!.*?_$)或(?<!\\_):表示不能以_结尾
               $: 为结束符
               ^:开始符(可省略)
               (?=.*[0-9])(?=.*[a-zA-Z])[0-9a-zA-z]{6,12}:必须包含一个字母和一个数字的6-12位密码

java对正则表达式的支持
1、Pattern
2、Matcher

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * java对正则表达式的支持
 */
public class Test01 {
    public static void main(String[] args) {
//        method01();
        method02();
    }

    /**
     * 验证格式是否正确
     */
    public static void method01(){
        String mobile="1345894567";
        String regex="^1[3-9]\\d{9}$";

        Pattern p=Pattern.compile(regex);//验证字符串的正则表达式
        Matcher m=p.matcher(mobile);//去匹配
        boolean flag=m.matches();//匹配结果
        System.out.println(flag?"成功":"失败");
    }

    /**
     * 匹配符合的内容有哪些
     */
    public static void method02(){
        //找出里面所有的数字,且在字符串的哪些位置
        String str="455fs87126sdg4s65d74d6ssd54g8s7sf5a";
        String regex="\\d+";

        Pattern p=Pattern.compile(regex);
        Matcher m= p.matcher(str);
        while (m.find()){
            System.out.println("匹配的:"+m.group()+",在字符串的下标值:"+m.start()+"-"+(m.end()-1));
        }
    }

}

在这里插入图片描述

String对正则表达式的支持
1、matchers
2、replaceAll,replacefirst
3、split

import java.util.Arrays;

/**
 * 字符串对正则表达式的支持
 */
public class Test02 {
    public static void main(String[] args) {

        String str="465564568@qq.com";
        String regex="\\d{6,11}@qq.com";

        //match()去匹配
        boolean flag =str.matches(regex);
        System.out.println("匹配的:"+(flag?"成功":"失败"));

        //精确替换 replace
        str="hfahkuwsf5454f4a5f4";
        str= str.replace("5","abc");
        //匹配替换  repalceAll   replacefirst
        String reg2="[a-zA-Z]+";
        str=str.replaceAll(reg2,",");
        System.out.println("替换后:"+str);

        //分割split
        str="hfahkuwsf5454f4a5f4";
        String reg3="[0-9]+";
        String[] arr=str.split(reg3);
        System.out.println("分割后:"+ Arrays.toString(arr));

    }
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值