java-正则表达式基础

巧了我就是萌 提交于 2019-12-19 03:21:58

简介

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

作用

  • 测试字符串内的模式。例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
  • 替换文本。可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
  • 基于模式匹配从字符串中提取子字符串。可以查找文档内或输入域内特定的文本。

java正则

1.java.util.regex

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

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

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

    String content = "adbasasd";
    String pattern = ".*ba.*";  //是否包含ba子串
    boolean isMatch = Pattern.matches(pattern, content);  //true
    

2.分组
捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:
( ( A ) (B ( C ) ) ),( A ),( B ( C ) ),( C )。

// 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK?";
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) );//This order was placed for QT3000! OK?
    System.out.println("Found value: " + m.group(1) );//This order was placed for QT
    System.out.println("Found value: " + m.group(2) );//3000
    System.out.println("Found value: " + m.group(3) );//! OK?
    } else {
         System.out.println("NO MATCH");
    }
 }

3.语法
在其他语言中,\\ 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。可以简单的理解在 Java 的正则表达式中,两个\\ 代表其他语言中的一个 \,这也就是为什么表示一位数字的正则表达式是 \\d,而表示一个普通的反斜杠是 4个反斜杠。
4.Matcher 类方法
在这里插入图片描述
5.模式匹配
在这里插入图片描述
6.替换方法
在这里插入图片描述

元字符

在这里插入图片描述
参考:
https://www.runoob.com/regexp/regexp-metachar.html
https://www.runoob.com/java/java-regular-expressions.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!