正则表达式(专题)

一、特点

1.符合一定的规则的表达式。
2.作用:用于专门操作字符串。
特点:用一些特定的符号来表示一些代码操作,这样简化书写。
这里写图片描述

3.具体操作功能:

1) 匹配:String matches方法。

字符类:

  • [abc]:表示相应字符位必须是a或b或c;
public class Test01 {
    public static void main(String[] args) {
        demo();

    }

    public static void demo(){
        String str = "a";
        String reg = "[bcd]";//第一个字符必须是b或c或d。
        System.out.println(str.matches(reg));
    }
}
}
//结果:false
  • [a-zA-Z]:必须是字母:
    注:位数
    这里写图片描述
    预定义字符:
  • \d:注意,用是写成\d ,第一个\是转义
String str = "a8";
String reg = "[a-zA-Z]\\d";//只能校验两位数,代替了上面的[0-9]
System.out.println(str.matches(reg));
  • \w:单词字母(邮箱常用)
    数量词:
  • X? ,X+ ,X{n} ,X{n,} ,X{n,m}

**2)切割**String split();
正则表达式:
弊端:符号定义越多,正则越长,阅读性越差。
这里写图片描述
**3)替换:**replaceAll()

public class Test01 {

    public static void main(String[] args) {

        replaceDemon("123456kuuusk1234op","\\d{5,}","#"); //将数字超过5个的替换成#

        replaceDemon("ghhhdsk55dj","(.)\\1+","&"); //把叠词替换成&
        replaceDemon("yyyyyjdhs77777","(.\\1+)","$1");//$表示获取第几个组。功能将重叠的字符替换成单个字母。
    }
        public static void replaceDemon(String str,String reg,String newStr){

                str = str.replaceAll(reg, newStr);
                System.out.println(str);
            }
        }
/*
结果:
#kuuusk1234op
g&dsk&dj
yyyyyjdhs77777
*/

4)获取:
将字符串中符合规则的子串取出
操作步骤:
1)将正则表达式封装成对象
2)让正则对象和要操作的字符串相关联
3)关联后,获取正则匹配引擎
4)通过引擎对符合规则的子串进行操作,比如取出。
注:导包import java.util.regex.*;

public class Test01 {

    public static void main(String[] args) {
        getDemon();

    }
        public static void getDemon(){

                String str = "mng dksja ks dks sdjf djf";
                String reg = "\\b[a-z]{3}\\b"; // \b单词边界
                //将规则封装成对象
                Pattern p = Pattern.compile(reg);
                //让正则对象和要做用的字符串相关联,获取匹配器对象,
                Matcher m = p.matcher(str);

                System.out.println(m.matches());
                while(m.find())//返回boolean类型,先find才能group取出
                {
                System.out.println(m.group());//group是获取匹配后的结果,所以应该先find
                }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值