前言

同事把一个excel表给我,里面的数据大概有几千的样子吧。自己需要把里面的数据一个一个拿出来做一个http请求,对得到的结果进行过滤,然后再写到上面去。这是就涉及到用脚本来进行操作了,于是自己搞了一个Java的脚本出来,里面涉及到一些正则表达式,自己虽然说会,但是一直对 Matcher类中的group方法 不太了解。网上的博客也没有写的特别清楚,于是有了此文。

Pattern 和 Matcher

java.util.regex 包下

  1. Pattern(模式类) : 用来表达和陈述所要搜索模式的对象。Pattern.compile(pattern) pattern 也就是你写的正则表达式
  2. Matcher(匹配器类):真正影响搜索的对象。上面Pattern.compile(pattern)得到一个Pattern对象 为 rr.matcher(line) line也即是你需要进行匹配的字符串 。这样会得到一个 Matcher 的对象。
  3. PatternSyntaxException: 当遇到不合法的搜索模式时,会抛出例外。

正则表达式语法

在有的语言中,一个反斜杠 \ 就足以具有转义的作用,但是Java中需要两个 \\ 反斜杠。表示转义的作用。一些字符在正则表达式中的说明,意义。详情可查看 runoob

上代码

现在我的正则表达式为 (//d+)([a-z]+)(//d+)

  1. //d+ 表示最少匹配一个数字
  2. [a-z]+ 表示最少匹配一个字符
  3. 需要指定的字符串为 "123ra9040 123123aj234 adf12322ad 222jsk22"
  4. 代码如下 :
public static void main( String args[] ){// 按指定模式在字符串查找String line = "123ra9040 123123aj234 adf12322ad 222jsk22";String pattern = "(\\d+)([a-z]+)(\\d+)";
//        String pattern1 = "([\\u4E00-\\u9FA5]+|\\w+)";// 创建 Pattern 对象Pattern r = Pattern.compile(pattern);// 现在创建 matcher 对象Matcher m = r.matcher(line);int i = 0;// m.find 是否找到正则表达式中符合条件的字符串while (m.find( )) {// 拿到上面匹配到的数据System.out.println("----i="+i);System.out.println("Found value: " + m.group(0) );System.out.println("Found value: " + m.group(1) );System.out.println("Found value: " + m.group(2) );System.out.println("Found value: " + m.group(3) );i++;System.out.println("|||||||");System.out.println("");}}

输出:

----i=0
Found value: 123ra9040
Found value: 123
Found value: ra
Found value: 9040
|||||||----i=1
Found value: 123123aj234
Found value: 123123
Found value: aj
Found value: 234
|||||||----i=2
Found value: 222jsk22
Found value: 222
Found value: jsk
Found value: 22
|||||||
  1. group(0) 对应着 ((//d+)([a-z]+)(//d+)) 123ra9040
  2. group(2) 输出的数据 是 group(0)中所匹配的数据 也就是([a-z]+) 匹配到是数据 ra
  3. group(3) 输出的数据 是 group(0)中所匹配的数据 也就是(//d+) 匹配到是数据 9040

总结

  1. Matcher 类中group(0) 表示正则表达式中符合条件的字符串。
  2. Matcher 类中 group(1) 表示正则表达式中符合条件的字符串中的第一个() 中的字符串。
  3. Matcher 类中 group(2) 表示正则表达式中符合条件的字符串中的第二个() 中的字符串。
  4. Matcher 类中 group(3) 表示正则表达式中符合条件的字符串中的第三个() 中的字符串。
  5. 如果不明白,我相信看代码会很明白的。

转载于:https://www.cnblogs.com/Krloypower/p/11356805.html

正则表达式之Matcher类中group方法相关推荐

  1. java matcher.group_详解正则表达式Matcher类中group方法

    前言 同事把一个excel表给我,里面的数据大概有几千的样子吧.自己需要把里面的数据一个一个拿出来做一个http请求,对得到的结果进行过滤,然后再写到上面去.这是就涉及到用脚本来进行操作了,于是自己搞 ...

  2. 正则表达式中Pattern类、Matcher类和matches()方法简析

    1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.  它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一 ...

  3. Matcher类中方法简介说明

    转自: Matcher类中方法简介说明 Matcher类中索引方法 索引方法的功能: 提供了索引信息, 返回匹配字符串的位置信息 索引方法如下所示: 编号 方法及备注说明 1 public int s ...

  4. Matcher 类中的group(),group(int i),groupCount()

    2019独角兽企业重金招聘Python工程师标准>>> Matcher 类中的group(),group(int i),groupCount() 2013-11-17 23:57 4 ...

  5. Python笔记_23_正则相关函数_类中的方法_装饰器_异常

    文章目录 正则相关函数 search 和 match split 切割 sub 替换 finditer 匹配字符串中相应内容,返回迭代器 compile 指定一个统一的匹配规则 正则表达式的修饰符 类 ...

  6. String类中split方法

    String类中split方法 split(你需要分割字符串的,分割的总个数) 该方法使用正则表达式的底层完成对字符串的分割 使用的案例: String s = "women,sksk,k, ...

  7. python---方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法>

    python---方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法> 参考文章: (1)python---方法解析顺序MRO(Method ...

  8. Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转)

    Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) 参考文章: (1)Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) (2)https://www. ...

  9. python装饰器类-Python 装饰器装饰类中的方法

    title: Python 装饰器装饰类中的方法 comments: true date: 2017-04-17 20:44:31 tags: ['Python', 'Decorate'] categ ...

  10. python装饰器实例-基于Python 装饰器装饰类中的方法实例

    title: Python 装饰器装饰类中的方法 comments: true date: 2017-04-17 20:44:31 tags: ['Python', 'Decorate'] categ ...

最新文章

  1. 内网之windows域相关概念介绍
  2. C语言读入全都的文件内容2
  3. cycle函数python_Python执行函数的周期实现
  4. NYOJ 716 River Crossing(动态规划)
  5. OA(part2)--Outlier Evaluation Techniques
  6. how is value displayed in BSP UI from model node data binding
  7. 1 MLP-Mixer: An all-MLP Architecture for Vision
  8. jmespath查找JSON的工具
  9. Minigui3.0.12完美安装
  10. 阿里云十年新战略发布!达摩院加持,阿里技术全部开放,20亿补贴小程序
  11. springboot新版本(2.1.0)、springcloud新版本(Greenwich.M1)实现链路追踪的一些坑
  12. gif分解工具_Python之GIF图倒放,沙雕快乐源泉!我已经笑了一天了!
  13. 全球十大数据治理解决方案提供商
  14. M3U8下载,直播源下载,FLASH下载(一)-ffmpeg安装手册(windows)
  15. 微机实验报告6 并行接口实验
  16. (附源码)spring boot宠物医院管理系统 毕业设计 180923
  17. 0204UNIFORM SIZE=10M?index?insert分裂
  18. html如何给table加水印,如何在Excel表格中添加水印
  19. 计算机系统加载失败怎么回事,驱动加载失败怎么办,驱动加载失败的原因和解决方法...
  20. Redmine安装与入门指南

热门文章

  1. 本学期关于Android学习的总结
  2. 幼儿园数学目标_幼儿园数学活动目标的制定
  3. 轮盘的基础,简单的实现和Toolbar的实现
  4. LOL英雄联盟代打外挂程序-java实现
  5. 【离散数学】陪集精讲
  6. 服务器是计算机主机吗,服务器是什么(服务器和电脑主机的区别)
  7. 制作HTML表单(文本框设置对齐等)
  8. Excel单元格科学计数法转换和小数点取整
  9. 作为产品经理,懂接口是必须的
  10. 2019年java全栈工程师学习大全