Java正则表达式

2015/01/12 Java Regular

Java正则表达式

自2002年早期发布的Java 1.4.0以后,Java就内建了正则表达式包,java.util.regex,它的API毫不复杂(可以称得上简单),提供了强大而有创意的功能。对Unicode的支持很棒,文档很清晰,运行速度也很快。它能够用来匹配 CharSequence 对象,所以使用起来非常方便。

正则表达式

正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。 简单来说,正则表达式就是一个很牛逼的字符串处理工具。

正则表达式实例

一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 “Hello World” 字符串。 .(点号)也是一个正则表达式,它匹配任何一个字符如:”a” 或 “1”。

匹配两个字符串中间的内容

正则匹配两个字符之间的内容

  • 匹配两个字符串A与B之间的内容,不包含A和B
    表达式: (?<=A).*?(?=B)
    

    代码如下

      public void testNANB(){
          String reg = "(?<=A).*?(?=B)";
          String temp = "aAabcBc";
          Pattern pattern = Pattern.compile(reg);
          Matcher matcher = pattern.matcher(temp);
          if( matcher.find() ){
          System.out.println(matcher.group());
          }
          }
    
  • 匹配两个字符串A与B之间的内容,包含A,不包含B
    表达式: A.*?(?=B)
    

    代码如下

      public void testANB(){
          String reg = "A.*?(?=B)";
          String temp = "aAabcBc";
          Pattern pattern = Pattern.compile(reg);
          Matcher matcher = pattern.matcher(temp);
          if( matcher.find() ){
              System.out.println(matcher.group());
          }
      }
    
  • 匹配两个字符串A与B之间的内容,不包含A,包含B
    表达式: (?<=A).*?B
    

    代码如下

      public void testNAB(){
          String reg = "(?<=A).*?B";
          String temp = "aAabcBc";
          Pattern pattern = Pattern.compile(reg);
          Matcher matcher = pattern.matcher(temp);
          if( matcher.find() ){
          System.out.println(matcher.group());
          }
          }
    
  • 匹配两个字符串A与B之间的内容,包含A和B
    表达式: A.*?B
    

    代码如下

      public void testAB(){
          String reg = "A.*?B";
          String temp = "aAabcBc";
          Pattern pattern = Pattern.compile(reg);
          Matcher matcher = pattern.matcher(temp);
          if( matcher.find() ){
          System.out.println(matcher.group());
          }
          }
    

    注: “ . ”表示任意字符,“ ? ”表示匹配一次或多次,“ ?<=A ” 表示以A开头,“ ?=B ”表示以B结尾

Search

    微信好友

    博士的沙漏

    Table of Contents