正则表达式

正则表达式

  • 适用的类:

      Pattern/Matcher
      这两个类中都提供了CharSequence接口
      该接口的实现类包括CharBuffer,String,StringBuffer,StringBuilder

  • 适用的方法

      Matcher:find--返回字符串中是否包含与Pattern匹配的子串
      group--返回上一次匹配的子串
      start--返回上一次匹配的开始位置
      end--返回上一次匹配的结束位置+1
      lookingAt--返回boolean 开头是否为pattern
      matches--整个目标字符串是否与pattern匹配
      reset--将现有的Matcher对象用于一个新的字符串

将需要匹配的正则表达式利用Pattern类的compile方法编译成为Pattern类对象

Pattern p=Pattern.compile(regex);

使用该Pattern对象的matcher方法创建Matcher类对象

Matcher m=p.matcher(string);

再利用Matcher对象的方法来判断

if(m.matches())
{
    System.out.println("满足正则表达式的匹配");
}
  • 常用的是String中的几种用法:

      String:replaceFirst(regex,替换的String)
      replaceAll(regex,替换的String)
      match(regex)
      String[]:split(regex)

 

  • 量词

      {}--前面子表达式的出现额度
      * --可以出现0次或多次
      + --前面子表达式可以出现1次或者多次
     ?--前面子表达式可以出现0次或者1次
      一般情况下默认使用贪婪模式,表达式会一直匹配下去,直到无法匹配
      勉强模式(加上?)最小匹配模式
      占有模式(加上+)只有java支持,很少用

 

  • 特殊字符

      $ --匹配结尾
      ^ --匹配开头
      ()--标记开始和结尾的位置
      []--确定中括号这个表达式开始和结束位置
      . --匹配除了\n以外的所有单字符
      \ --转义下一个字符
      | --或
     \b --单词边界
     \B --非单词边界
     \A --输入的开头
     \G --前一个匹配的结尾
     \Z --最后的结束符
     \z --输入的结尾

  • 合法字符

      x --任意合法字符
      \0mnn --8进制
      \uhhhh \xhh--16进制(\xhh不常用)
      \t --制表符
      \n --换行符
      \r --回车符
      \f --换页符
      \a --报警符
      \e --escape
      \cx --控制符,表示Ctrl+x,x为a-z

  • 预定义字符(通配符)

      . --任意字符
      \d --0-9
      \D --非数字
      \s --空白字符
      \S --非空白字符
      \w --数字、字母、下划线
      \W --非单词字符
      使用时需要注意,应写为\\w的格式

  • 方括号表达式

      [az]--字符为a或者z
      [a-z]--字符范围为a-z
      [^a-z]--除了a-z以外的字符
      [a-d&&[h-n]]--与运算
      [a-d[m-p]]--并运算

      圆括号用于组成子表达式,|用来表示或

正则表达式使用的一个简单例子:

匹配字符串中的s开头的单词,并替换为summer

 

String s="now it's sping,but today is so cold!";
String a=s.replaceAll("s\\w+","summer");
System.out.println(a);

 

posted @ 2019-03-28 10:24  yls_Abby  阅读(170)  评论(0编辑  收藏  举报