Java的正则表达式

Posted 小女子的测试之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的正则表达式相关的知识,希望对你有一定的参考价值。

Java正则表达式:定义了字符串的模式;可以用来搜索、编辑、或处理文本;

指定为字符串的正则表达式必须首先被编译为此类的实例。然后将得到的模式用于创建Matcher对象,依照正则表达式,该对象可以与任意字符序列匹配,执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式

因此,典型的调用顺序是:

Pattern p = Pattern.compile("a*b");

Matcher m = p.matcher("aaaaaaabccccc");

boolean b = m.matches();

如下例子中:

boolean isMatch = Pattern.matches(pattern,content);仅在使用一次正则表达式时,可以方便使用matches方法。

Java.util.regex包主要包括以下三个类:

  1、Pattern类:pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法,要创建一个Pattern对象,必须首先调用其公共静态编译方法,返回一个Pattern对象,该方法接受一个正则表达式作为它的第一个参数。

package cuiyuee;
import java.util.regex.*;

public class PatternTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String content = "I am noob from runoob.com.";
        
        String pattern = ".*runoob.*";
        
        boolean isMatch = Pattern.matches(pattern,content);
        System.out.println("字符串中是否包含了 ‘runoob‘ 子字符串?"+ isMatch);
        
    }

}

 

  2、Matcher类:Matcher对象是对输入字符串进行解释和匹配操作的引擎,与Pattern类一样,Matcher也没有公共构造方法,需要调用Pattern对象的matcher方法来获得一个Matcher对象。

  Matcher类的方法:

    索引方法:提供了有用的索引值,精确表明输入字符串中在哪能找到匹配。

      public int start():返回以前匹配的初始索引。

      public int start(int group):返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引。

      public int end(int group):返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。

    研究方法:用来检查输入字符串并返回一个布尔值,表示是否找到该模式。

      public boolean lookingAt():尝试将从区域开头开始的输入序列与该模式匹配。

      public boolean find():尝试查找与该模式匹配的输入序列的下一个子序列。

      public boolean find(int start):重置此匹配器,尝试查找匹配该模式,从指定索引开始的输入序列的下一个子序列。

      public boolean matches():尝试将整个区域与模式匹配。

    替换方法:替换输入字符串里文本的方法。

      public Matcher appednReplacement(StringBuffer sb,String replacement):实现非终端添加和替换步骤。

      public StringBuffer appendTail(StringBuffer sb):实现终端添加和替换步骤

      public String replaceAll(String replacement):替换模式与给定替换字符串相匹配的输入序列的每个字序列。

      public String replaceFirst(String replacement):替换模式与给定替换字符串匹配的输入序列的第一个子序列

      public static String quoteReplacement(String s):返回指定字符串的字面替换字符串。这个方法返回一个字符串,就像传递给Matcher类的appendReplacement 方法一个字面字符串一样工作。

 

   3、PatternSyntaxException类

      PatternSyntaxException是一个非强制异常类,它指示一个正则表达式模式中的语法错误。

      有以下方法帮助我们查看发生了什么错误。

    public String getDescription():获取错误的描述。

    public int getIndex():获取错误的索引。

    public String getPattern():获取错误的正则表达式模式。

    public String getMessage():返回多行字符串,包含语法错误及其索引的描述,错误的正则表达式模式和模式中错误索引的可视化指示。

 

以上是关于Java的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

java 字符串替换

text 正则表达式片段

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

java正则表达式去除html标签

循环通过 python 正则表达式匹配