2023-11-16

组是由圆括号分开的正则表达式,随后可以根据它们的组号进行调用。第 0 组表示整个匹

配表达式,第1 组表示第 1 个用圆括号括起来的组,等等。因此,在表达式

 

A(B(C))D

 

中,有 3 个组:第 0 组 ABCD,第 1 组是 BC 以及第 2 组 C。

 

Matcher 对象有一些方法可以向我们提供有关组的信息:

 

public intgroupCount( )返回本匹配器的模式中分组的数目。第 0 组不包括在内。

 

public String group( )   返回前一次匹配操作(例如:find())的第 0 组(整个匹配)。

 

public String group(int i)   返回在前一次匹配操作期间指定的组。如果匹配成功,但是指

定的组没有匹配输入字符串的任何部分,将返回 null。

 

public intstart(int group)返回在前一次匹配操作中寻找到的组的起始下标。

 

public intend(int group)返回在前一次匹配操作中寻找到的组的最后一个字符下标加一

的值。

 

下面是正则表达式组的例子:

 

//:c12:Groups.java

importjava.util.regex.*;

importcom.bruceeckel.simpletest.*;

 

public classGroups {

    private static Test monitor = new Test();

    static public final String poem =

        "Twas brillig, and the slithytoves\n" +

        "Did gyre and gimble in thewabe.\n" +

        "All mimsy were theborogoves,\n" +

        "And the mome rathsoutgrabe.\n\n" +

        "Beware the Jabberwock, myson,\n" +

        "The jaws that bite, the clawsthat catch.\n" +

        "Beware the Jubjub bird, andshun\n" +

    "The frumious Bandersnatch.";

    public static void main(String[] args) {

    Matcher m =

     Pattern.compile("(?m)(\\S+)\\s+((\\S+)\\s+(\\S+))$")

                .matcher(poem);

    while(m.find()) {

            for(int j = 0; j <=m.groupCount(); j++)

        System.out.print("[" +m.group(j) + "]");

      System.out.println();

        }

    monitor.expect(new String[]{

            "[the slithy toves]" +

      "[the][slithytoves][slithy][toves]",

      "[in the wabe.][in][thewabe.][the][wabe.]",

            "[were the borogoves,]" +

      "[were][theborogoves,][the][borogoves,]",

      "[mome raths outgrabe.]" +

      "[mome][rathsoutgrabe.][raths][outgrabe.]",

      "[Jabberwock, my son,]" +

      "[Jabberwock,][myson,][my][son,]",

      "[claws that catch.]" +

      "[claws][thatcatch.][that][catch.]",

      "[bird, and shun][bird,][and shun][and][shun]",

      "[The frumiousBandersnatch.][The]" +

      "[frumiousBandersnatch.][frumious][Bandersnatch.]"

        });

    }

} ///:~

 

这首诗来自于 Lewis Carroll 的 Throughthe Looking Glass  中的“Jabberwocky”。我

们可以看到这个正则表达式模式有许多圆括号分组,由任意数目的非空格字符(‘\S+’)伴

随任意数目的空格字符(‘\s+’)所组成。目的是捕获每行的最后 3 个词;每行最后以‘$’结束。

不过,在正常情况下,将‘$’与整个输入序列的末端相匹配。所以我们一定要显式地告知正

则表达式注意输入序列中的换行符。这可以由序列开头的模式标记‘(?m)’来完成(模式标

记马上就会介绍)


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组 的相关文章

  • Gin 框架学习

    Gin 框架
  • python 异步共享变量问题记录

    draw boxes multiprocessing Manager list item name image name replace jpg logging info Working on format item name pool m
  • 计组——搞懂主存储器芯片之地址线数据线及片选线和读写控制线

    一块存储芯片完整的构造图如下 内部进行了封装 存储矩阵是由一个一个的存储元构成 译码驱动电路分为译码器和驱动器 译码器会输出某一条线路的高电平信号 驱动器是为了保证译码器输出的高电平稳定可靠的 可以理解为将电信号放大的部件 读写电路是连通存
  • 【DL with Pytorch】第 3 章 :使用 DNN 的分类问题

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Python:使用os模块执行cmd命令

    大家好 我是wangzirui32 今天我们来学习如何让Python执行cmd命令 很简单 输入代码 from os import system 在system里放入需要执行的命令即可 这里我写的是ipconfig命令 ok system
  • NSI50150ADT4G TO-252 ON安森美 150-350mA 50V 4.2W LED驱动器 工业级规格认证

    NSI50150ADT4G TO 252 ON安森美 150 350mA 50V 4 2W LED驱动器 工业级规格认证 是一款可调恒流调节器 CCR 是一种简单的 高性能低成本产品 适用于为 LED 中的调节电流提供成本高效的方案 C该
  • XGBoost实战1:boston房价预测

    boston房价数据集包括506个样本 每个样本包括13个特征变量和该地区的平均房价 房价显然和多个特征变量相关 对于XGBoost模型 我们分别用两种方式来创建 本章学习以下内容 1 XGBoost两种方式建模以及所需参数 2 gridS
  • 使用mysql_upgrade升级mysql5.1至5.6的数据库升级实施方案

    本方案是因为在工作中遇到的一个mysql主从功能配置的问题所引起的 有一个处在从位置上的mysql是5 1版本的 从5 1到5 6的mysql各种系统管理功能 像系统表表结构 日志文件格式等等均不一致 这时直接以5 1版本去作为一个5 6版
  • 信安软考 第十二章 网络安全审计技术

    一 网络安全审计概述 网络安全审计是指对网络信息系统的安全相关活动信息进行获取 记录 存储 分析和利用的工作 网络安全审计的作用在于建立 事后 安全保障措施 保存网络安全事件及行为信息 为网络安全事件分析提供线索及证据 以便发现潜在的网络安
  • rocketMq启动broker报错找不到或无法加载主类 Files\Java\jdk1.8.0_171\lib\dt.jar;C:\Program]

    假如弹出提示框提示 错误 找不到或无法加载主类 xxxxxx 1 打开runbroker cmd 将 CLASSPATH 加上英文双引号 切勿别加中文双引号 2 打开runserver cmd 同理 将 CLASSPATH 加上英文双引号
  • hexo+GitHub Pages一键搭建部署博客

    文章目录 前言 博客相关配置 matery主题相关配置 1 什么是 Hexo 2 准备工作 3 生成博客 4 更换主题 5 部署到github pages 总结 前言 现在技术更新迭代是非常的快 尤其是web方面 所以当前搭建一个博客差不多
  • Ubuntu16.04安装ROS Kinetic详细步骤

    文章目录 ROS安装 配置Ubuntu软件仓库 设置sources list 设置密钥 更新Debian软件包索引 安装ROS 初始化 rosdep 环境配置 构建工厂依赖 测试安装 开发环境 ROS安装 ROS Kinetic只支持Wil
  • CompletableFuture使用(二)

    CompletableFuture创建异步任务后 get 方法是阻塞到Future完成后返回结果 对于构建异步系统 需要将回调附加到CompletableFuture上 当Future完成时自动调用 就可以使用thenApply thenA
  • 【直播+福利】生产压测环境,如何做好安全保障?

    互联网 数字经济的不断发展使得系统架构不断演变 实现了从 单线程 到 多线程 多组件 再到 分布式 微服务 的一个跨越 分布式系统的复杂程度是公认的 牵一发而动全身 想要保障系统的稳定可用是所有企业的共有难题 生产全链路压测应运而生 可实际
  • Ansible-角色部署LAMP

    配置主机 root ansible cd etc ansible root ansible ansible ls ansible cfg hosts roles root ansible ansible vim hosts dev node
  • [图文]Openfiler应用篇(四) FTP和Quota

    本篇我们讨论openfiler FTP和Quota 磁盘配额 的应用 openfiler FTP和Quota功能必须在开启帐户功能的条件下才能使用 一 FTP应用 1 开启FTP 点击主菜单Services 在Manage Services
  • git的使用和规划

    1 拉取项目 在拉取项目的时候使用git rebase 这样分支管理更加清晰 2 提交项目 commit的时候不要把不希望别人看到的改到都commit上 commit的时候 要检查修改的文件代码书写是否正确 下图中打钩文件为想要提交的文件
  • SQL中EXISTS理解使用

    SQL中EXISTS的理解使用 关联子查询 EXISTS理解使用 关联子查询 在讲述EXISTS用法之前 先讲述一下关联子查询 关联子查询 是指在内查询中需要借助于外查询 而外查询离不开内查询的执行 举个栗子 在Oracle中自带的EMP表
  • Objective-C块block介绍

    块的定义 返回值类型 形参类型 形参1 形参类型 形参2 块执行体 以上是一个块的写法 1 返回值类型可以省略 形参也可以参略 但是形参的括号不能参略 NSLog 123 通常我们需要反复调用块 因为块相当于一个匿名的函数 我们调用它时可以
  • 在VMware中设置ubuntu与Windows共享文件夹

    本机系统 win7 使用vmware安装的unbutu 之前在win7上下载了一些文档和软件 想在虚拟机中使用 结果发现读取不了这些文件 头疼了一下午 从网上搜索了很多资源 发现没有一个完整的文章可以一次搞定 头疼 这里就总结一下我的方法

随机推荐

  • I2C与SPI通信总线协议

    仅以寄存器地址为8Bit的器件为例 例如MPU6500 LSM6DS3 I2C通信协议 I2C 的要点是了解I2C通信帧的组成部分 START起始位 STOP停止位 ACK NACK信号 从机器件地址 从机寄存器地址 I2C读的时序比较繁琐
  • K8S访问控制------认证(authentication )、授权(authorization )体系

    一 账号分类 在K8S体系中有两种账号类型 User accounts 用户账号 即针对human user的 Service accounts 服务账号 即针对pod的 这两种账号都可以访问 API server 都需要经历认证 授权 准
  • Linux根目录爆满,解决(/dev/mapper/rhel-root 98%问题)

    1 首先确定是否是磁盘空间不足 输入命令 df h 查看磁盘信息 发现已经使用率达到96 所有需要删除大文件数据 2 其次查找大文件 du h max depth 1 命令代表寻找当前目录 哪个文件夹占用空间最大 进入根目录 root vl
  • 六级英语词汇

    genuine d enju n fake If this offer is genuine I will gladly accept it 如果这份帮助是真诚的 我将愉快地接受它 一 单词关 whereas we r z conj 然而
  • [YOLO专题-17]:YOLO V5 - 如何把YOLO训练数据集批量转换成带矩形框的图片

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122344955 目录 前言 第1章
  • 利用Spring框架在前端实现对数据库的增删改查

    在前端页面上显示购物数据库数据 并且可以这增 删 改 查 1 首先在WEB 配置文件
  • 交叉熵:pytorch版本 vs 日常版本

    首先看下平时我们所说的交叉熵 传送门 在信息论中 交叉熵可认为是对预测分布q x 用真实分布p x 来进行编码时所需要的信息量大小 而在机器学习的分类问题中 真实分布p x 是one hot形式 表明独属于one hot中1对应的角标的那个
  • cpuz测试分数天梯图_2015最新cpu天梯图 cpu性能排行榜

    西安兵马俑在线3月19日讯查找排名方法 搜索CPU型号 例如 按Ctrl F键 搜 i7 5960X 这个CPU型号 若需获知个人使用的电脑CPU具体型号 查看计算机属性 或用CPU Z这个软件 常用名词解释 CPUModel 处理器型号
  • vsCode关闭代码检查工具

    在script标签里 第一行输入下面的内容即可 转载于 https www cnblogs com caoxueying2018 p 10062329 html
  • 内核运行环境

    复杂度2 5 机密度2 5 最后更新2021 05 06 AIX内核有两种运行环境 process environment和interrupt environment 用户进程call内核系统调用 或者内核系统调用嵌套call其它系统调用
  • 2023年信息与通信工程国际会议(JCICE 2023)

    会议简介 Brief Introduction 2023年第二届信息与通信工程国际会议 JCICE 2023 会议时间 2023年5月12日 14日 召开地点 中国 成都 大会官网 JCICE 2023 2023 International
  • DeeplabCut安装教程(CPU)版

    DeeplabCut安装教程 CPU 版 文章目录 DeeplabCut安装教程 CPU 版 前言 安装步骤 1 进入官网下载对应的DeepLabCut zip文件 附官网链接 2 解压到任意位置 3 打开Anaconda Navigato
  • c++模板(函数模板,类中函数模板,类模板)

    作用 减少程序中的冗余信息 如 多个函数或类的除了参数类型外 其余都完全相同时 可以使用模板来减少重复信息 参考函数重载时 输入参数数量也相同的情况 1 函数模板 即建立一个通用函数 只不过该函数的返回类型和形参类型都不具体指定 其定义格式
  • Python实现找零兑换的三种解法

    找零兑换 找零兑换问题最直接的解法就是贪心策略 比如问题 有面值1 5 10 25的硬币 求解兑换63元所需的最少硬币数 贪心策略的思想就是不断的利用面值最大的硬币去尝试 不行了 在尝试较小面值的硬币 该例中也即使用25的硬币去尝试 2枚2
  • 华为服务器怎么换系统,云服务器怎么更换系统

    云服务器怎么更换系统 内容精选 换一换 弹性云服务器系统密码涉及到客户重要的私人信息 提醒您妥善保管密码 如果您忘记密码或密码过期 可以重置密码 如果弹性云服务器提前安装了密码重置插件 请参见在控制台重置弹性云服务器密码 使用公共镜像的弹性
  • 【简单易用】基于Qt的跨平台自定义标题栏控件QJamWindow

    一 概述 QJamWindow是一个基于Qt的跨平台自定义标题栏控件 你可以通过它方便得设计出属于自己的标题栏 特性 1 标题栏高度可调 标题栏背景色设定 2 图标及其尺寸 图标背景色设定 3 Control box宽度 鼠标经过 按下颜色
  • JAVA基础必备功能之导出ZIP文件

    导出ZIP文件 比较常用的两种 导出图片压缩文件 导出excel压缩文件 导出思路 需要导出的文件转存为byte数组保存到Map 然后遍历压缩成zip 需要引入jar
  • 链表— —循环链表的算法实现

    Joseph问题 有 10 个小朋友按编号顺序 1 2 10 顺时针方向围成一圈 从 1 号开始顺时针方向 1 2 9 报数 凡报数 9 者出列 显然 第一个出圈为编号 9 者 最后一个出圈者的编号是多少 第 5 个出圈者的编号是多少 in
  • lintcode 631 · 最大矩阵II【矩阵 中等 vip】

    题目 https www lintcode com problem 631 给出一个只有 0 和 1 组成的二维矩阵 找出最大的一个子矩阵 使得这个子矩阵的主对角线元素均为 1 其他元素均为 0 你可以认为所求的矩阵一定是一个方阵 主对角线
  • 组是由圆括号分开的正则表达式 随后可以根据它们的组号进行调用 第 0 组表示整个匹 配表达式 第1 组表示第 1 个用圆括号括起来的组 等等 因此 在表达式 A B C D 中 有 3 个组 第 0 组 ABCD 第 1 组是 BC 以及第