美文网首页
正则表达式分组的用法

正则表达式分组的用法

作者: JohnShen | 来源:发表于2016-01-28 14:29 被阅读465次

最近需要解决一个问题,就是一段符合某种格式的文本中有一些信息需要提取出来,比如下面这段文字:

My name is John, and my age is 26.

我需要提取这里的John26作为该条目的nameage。这种需求应该是比较常见的,比如你要搜集一条日志中的一些信息,或者一条短信中的验证码部分。

下面来看如何使用Java的正则表达式解决这个问题:

String source = "My name is John, and my age is 26.";
Pattern pattern = Pattern.compile("My name is (\\w+), and my age is (\\d+)\\.");
Matcher matcher = pattern.matcher(source);
if(matcher.find()){
    System.out.println(matcher.group(0)); // output:My name is John, and my age is 26.
    System.out.println(matcher.group(1)); // output:John
    System.out.println(matcher.group(2)); // output:26
}else{
    System.out.println("No match");
}

这里使用括号将需要分组的部分包括起来,然后通过Matcher的group()方法来引用匹配的部分。

注意:

  1. group(0)永远匹配整个表达式,第一个括号的匹配用group(1)表示。
  2. 这里的pattern,简单起见没有考虑名字中包含空格的情况。

这里附一个在线验证正则的网站:http://regexr.com/

相关文章

  • python正则表达式详解

    #首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用法 环视用法...

  • Python正则表达式分组 Group

    在正则表达式介绍中,我们学习了正则表达式的基本用法。列举了一些简单的例子。在这一部分,将介绍更高级的用法,捕获分组...

  • 正则表达式分组的用法

    最近需要解决一个问题,就是一段符合某种格式的文本中有一些信息需要提取出来,比如下面这段文字: 我需要提取这里的Jo...

  • 2019-05-07python学习记录-搜文本

    正则表达式 添加括号可以在正则表达式中加分组groups() 复数可以一次获得所有分组 | 用管道匹配多个分组? ...

  • 03-web服务器v3.1--01

    正则表达式 1.匹配单个字符 匹配多个字符 匹配开头结尾 邮箱正则 匹配分组 re的高级用法 search、fin...

  • Python 高级 8正则表达式

    正则表达式、re模块、匹配单个字符、匹配多个字符、匹配开头结尾、匹配分组、re模块的高级用法、python贪婪和非...

  • Django的路由系统

    基本格式 分组命名匹配 在Python的正则表达式中,分组命名正则表达式组的语法是(?Ppattern...

  • 正则表达式

    用法。常用正则表达式。详细用法 //正则表达式:记录文本规则的代码 //常用的正则表达式的地方:登录,密码等格式的...

  • iOS-正则表达式使用

    正则表达式与NSPredicate连用 正则表达式类 分组的使用 相关资料 常用正则表达式

  • Java学习(持续更新)

    正则表达式matches用法

网友评论

      本文标题:正则表达式分组的用法

      本文链接:https://www.haomeiwen.com/subject/amhjkttx.html