正则表达式知识与使用

一、元字符

    1)".",点用于匹配除换行符意外的任意字符
    2)"w",匹配字母或数字或下划线或汉字
    3)"s",匹配任意空白符
    4)"d",匹配数字
    5)"",匹配单词的开始或结束
    6)"^",匹配字符串的开始
    7)"$",匹配字符串的结束

二、重复限定符(量词)

    1)"*",重复零次或更多次
    2)"+",重复一次或更多次
    3)"?",重复零次或一次
    4)"{n}",重复n次
    5)"{n,}",重复n次或更多次
    6)"{n,m}",重复n到m次

三、分组

    限定符是作用与它左边最近的一个字符,若想多个字符同时被限定,用()小括号分组作为一个整体,
    例:^(ab)*,匹配包含0到多个ab开头的字符串
扩展:
组指的是用括号划分的正则表达式,举个简单的例子:A(B(C)D 
组0:ABCD 
组1:BC 
组2:C 
Macher类中的group(int i)返回对应的组,例如group(0)为ABCD,group(1)为BC,group(2)为C, 
groupCount()返回组数。
group()  同 group(0) 就是匹配正则表达式整体结果
group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。

四、转义

    把元字符、限定符或者关键字转义成普通的字符,在转义的字符前面加个斜杠即可。在java代码中需要对反斜杠再加一个反斜杠。
    例:匹配(ab)开头的字符串:^(\(ab\))+"

五、条件或

    "|"表示或,满足正则里的任何一种条件都当成是匹配成功。
    例:^(130|131|151)d{8}$  匹配130或131或151开头的手机号

六、区间

     [ ]中括号表示区间
     例:[0-9],限定0到9  ; [A-Z]限定A-Z 
     ^(130|131|151)d{8}$可以改成,^((13[01])|151)d{8}$  

七、断言

    即:返回匹配上字符的前后内容,不返回匹配的字符
    例:"阅读数:641"  
         1)返回641数字,表达式为:\d+(?=)
         2)返回641数字,表达式为:(?<=阅读数:)\d+
          3) (?!pattern),匹配非pattern表达式的前面内容,不返回本身
         4)(?pattern),匹配非pattern表达式的后面内容,不返回本身

八、常用方法:

   1) 匹配
       String matches()方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。
   2)切割
       String split()方法;  根据给定正则表达式的匹配拆分此字符串。返回一个数组。
   3) 替换
      String replaceAll(regex,str)方法;    使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
   4) 获取   
      将字符串中的符合规则的子串取出 find()。
     操作步骤:
    1,将正则表达式封装成对象。
    2,让正则对象和要操作的字符串相关联。
    3,关联后,获取正则匹配引擎。
    4,通过引擎对符合规则的子串进行操作,比如取出。
什么情况下使用什么方法呢?????? 
    思路方式:
    1,如果只想知道该字符是否对是错,使用匹配。
    2,想要将已有的字符串变成另一个字符串,替换。
    3,想要按照自定的方式将字符串变成多个字符串。切割。获取规则以外的子串。
    4,想要拿到符合需求的字符串子串,获取。获取符合规则的子串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值