java基础--正则表达式


java基础--正则表达式

用一种模式去匹配字符文本的公式

底层实现

matchar对象的属性 int[] grougs; grougs数组主要记录匹配到原始字符串的索引值,使用groug方法来获取子字符串,groug(0)代表匹配到的字符串,groug(1)groug(2)...代表正则捕获分组子内容,groug也支持分组命名方式获取,但是前提是你在正则中要命名 (?pattern)

相关类

  • Pattern
    • 没有共有的构造器,通过类静态方法来生成正则表达式对象:compile(Sting Regex)
  • Matcher
    • 没有公有的构造器,通过Pattern类对象的方法生成匹配器对象:matcher(String context)

应用

  • 使用细节可以参考韩老师视频细节

  • java中正则转义符要使用\,一共两个

  • 反向引用

    主要利用分组、捕获的内容进行反向引用,内部反向引用使用 \\分组号,外部引用使用 $分组号

    //匹配两个连续的的相同数字
    (\\d)\\1
    //匹配5225,1551
    (\\d)(\\d)\\2\\1
    //处理经典的结巴程序
    String context = "我我想想想学学学学Java"
    context = Pattern.compile("(.)\\1+").matcher(context).replaceAll("$1");
    
  • String类使用正则

    • replaceAll(String regex, String replacement) 替换
    • matches(String regex) 判断
    • split(String regex) 分割