黑马程序员------java学习笔记之正则表达式


   在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。

    正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。因为正则表达式是一个很庞杂的体系,所以我仅例举些入门的概念,更多的请参阅相关书籍及自行摸索。


示例:获取一定规则字符串

1.定义一个获取规则封装成对象

 
Pattern p=Pattern.compile("[a-z]{3}");
2.用正则对象的matcher()方法跟字符串关联,并返回一个Matcher对象
Matcher m=p.matcher("aaaa bbbb, ccc");
3通过Matcher对象find()遍历字符串查找符合规则的内容,并通过group()获取匹配的子序列。
while(m.find()){
  System.out.println("开始位置:"+m.start()+"=="+m.group()+"==结束位置:"+m.end());
}

m.start()  //返回获取内容开始位置
m.end()  //返回获取内容结束位置

通过string对象的一些方法可对字符串进行匹配,切割,替换操作,不用封装Pattern这么麻烦:

匹配:matches()

 例子:     

    String s="123456";    //匹配的字符串
    String ss="[\\d]{6}";   //匹配0-9数字的6位字符串
    booleam b=s.matches(ss);   //返回的b是true

切割:split()

 例子:

    String s="123.456.789";    //切割的字符串
    String ss="\\.";        //正则
    String[] sss=s.split(ss);   //对字符串s按正则ss进行切割,返回sss字符数组
    for(String str:sss){        //遍历sss字符数组并打印
       System.out.println(str);
    }

替换:replace()和replaceAll()

 例子:

    String s="326_45_749";    //替换的字符串
    String ss="_";        //需要替换的字符
    String sss=s.replaceAll(ss,"0");   //对字符串s的"_"替换成"0",返回sss字符串      
    System.out.println(sss);<span style="font-family: Arial;">//打印替换后的字符</span>



   


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值