正则表达式

一、Java正则表达式
正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别, Java 正则表达式和 Perl 的是最为相似的。
java.util.regex 包主要包括以下三个类:
    • Pattern 类:
      • pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法 。
    • Matcher 类:
      • Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。
    • PatternSyntaxException:
      • PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
public static void main(String args[]){
    String content = "aaaaaaaaaaabbbaaaaaaaaaaccc";
    String pattern = ".*bbb.*";
 
    boolean isMatch = Pattern.matches(pattern, content);
    System.out.println("字符串中是否包含了 'bbb' 子字符串? " + isMatch);
}
 
二、捕获组
捕获组是把多个字符当一个单独单元进行处理的方法
    • 它通过对括号内的字符分组来创建。 例如,正则表达式 (dog) 创建了单一分组,组里包含"d","o",和"g"。
    • 可以通过调用 matcher 对象的 groupCount 方法来查看表达式有多少个分组。groupCount 方法返回一个 int 值
    • 还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在 groupCount 的返回值中。
//例子一
public static void main( String args[] ) {
    // 按指定模式在字符串查找
    String line = "This order was placed for QT3000! OK 8877?";
    String pattern = "(\\D*)(\\d+)(.*)";
 
    // 创建 Pattern 对象
    Pattern r = Pattern.compile(pattern);
 
    // 现在创建 matcher 对象
    Matcher m = r.matcher(line);
 
    if (m.find()) {
        System.out.println("Found value: " + m.group(0));   //Found value: This order was placed for QT3000! OK 8877?
        System.out.println("Found value: " + m.group(1));   //Found value: This order was placed for QT
        System.out.println("Found value: " + m.group(2));   //3000
        System.out.println("Found value: " + m.group(3));   //! OK 8877?
    } else {
        System.out.println("NO MATCH");
    }
}
 
//例子二
public static void main(String[] args){
    String str="n13977777777s18911111111,你好15988888888hha0955-7777777 sss0775-6678111";
    Pattern pattern = Pattern.compile("1[3|4|5|7|8][0-9]\\d{4,8}");
    Matcher matcher = pattern.matcher(str);
 
    while(matcher.find()){
        System.out.println("查询到一个符合的手机号码:"+matcher.group()); //查找到符合的即输出
        //str = matcher.replaceAll("");
        //System.out.println(str);
    }
}
 
三、正则表达式语法
 
四、Matcher 类的方法
  • 索引方法
    • 索引方法提供了有用的索引值,精确表明输入字符串中在哪能找到匹配:
  • 查找方法
    • 查找方法用来检查输入字符串并返回一个布尔值,表示是否找到该模式
  • 替换方法
    • 替换方法是替换输入字符串里文本的方法
 
五、PatternSyntaxException类的方法
  • PatternSyntaxException 是一个非强制异常类,它指示一个正则表达式模式中的语法错误。
  • PatternSyntaxException 类提供了下面的方法来帮助我们查看发生了什么错误。
posted @ 2020-07-05 12:31  Duomen  阅读(107)  评论(0编辑  收藏  举报