分组与引用:用正则实现更复杂的查找和替换操作

news2024/10/5 13:32:11

括号在正则中的功能就是用于分组。简单来理解就是,由多个元字符组成某个部分,应该被看成一个整体的时候,可以用括号括起来表示一个整体,这是括号的一个重要功能。其实用括号括起来还有另外一个作用,那就是“复用”。

那分组和编号的规则是怎样的呢?其实很简单,用一句话来说就是,第几个括号就是第几个分组。

这里有个时间格式 2020-05-10 20:23:05。假设我们想要使用正则提取出里面的日期和时间。

 将日期和时间都括号括起来。这个正则中一共有两个分组,日期是第 1 个,时间是第 2 个。

在括号里面的会保存成子组,但有些情况下,你可能只想用括号将某些部分看成一个整体,后续不用再用它,类似这种情况,在实际使用时,是没必要保存子组的。这时我们可以在括号里面使用 ?: 不保存子组。

那到底啥是不保存子组呢?可以理解成,括号只用于归组,把某个部分当成“单个元素”,不分配编号,后面不会再进行这部分的引用。

在括号嵌套的情况里,要看某个括号里面的内容是第几个分组怎么办?我们只需要数左括号(开括号)是第几个,就可以确定是第几个子组。 

日期分组编号是 1,时间分组编号是 5,年月日对应的分组编号分别是 2,3,4,时分秒的分组编号分别是 6,7,8。

在知道了分组引用的编号 (number)后,大部分情况下,我们就可以使用 “反斜扛 + 编号”,即 \number 的方式来进行引用,而 JavaScript 中是通过$编号来引用,如$1。

  此文章为8月Day20学习笔记,内容来源于极客时间《正则表达式入门课》,推荐该课程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/903277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 线程同步——信号量

一、线程同步的概念 这里的同步就是对程序的执行进行控制,因为如果不进行控制就会出现错误的问题,这里的控制是为了保证程序的正确性。 线程同步指的是当一个线程在对某个临界资源进行操作时,其他线程都不可以对这个资源进行操作&#xff0…

json文件读取数据报错 AttributeError: ‘str‘ object has no attribute ‘items‘

trans_width_table表如下: {frozenset({2}): {3: 250, 2.5: 100, 1.5: 25, 2: 50, 1.8: 50, 2.75: 200, 5: 350, 4: 350, 2.3: 100, 4.5: 350, 3.5: 300}, frozenset({1, 3, 4, 5}): {2.5: 75, 2.75: 100, 1.5: 25, 4: 300, 3.5: 200, 4.5: 300, 3: 100, 5: 300, 2…

沁恒ch32V208处理器开发(六)BLE开发

目录 概述任务初始化任务的调度执行TMOS 处理事件方法 概述 CH32V 系列是基于青稞 32 位 RISC-V 设计的工业级通用微控制器,片上集成 2Mbps 低功耗蓝牙通讯模块,支持低功耗蓝牙 BLE5.x,低功耗蓝牙协议栈以及应用均基于 TMOS(Task…

光电比赛小车寻宝【1】--循迹策略

2023光电比赛总结:主要功能实现了,就是视频没做好,落选了非常的遗憾,也有很多的不甘心,也可以作为最后摆烂的惩罚吧,在这里总结一下经验教训。整体感觉时间不是非常充分,因为得到比赛的消息后突…

Linux之管理逻辑卷

目录 管理逻辑卷 认识LInux逻辑卷 LVM基本概念 部署逻辑卷 常用LVM部署命令 案例 管理与调整LVM卷 1.扩展卷组——添加/dev/nvme0n2p4物理卷到vg01中 2.在线扩展逻辑卷 管理逻辑卷 逻辑卷管理器是Linux 系统用于对硬盘分区进行管理的一种机制, 理论性较强 &…

安装搭建私有仓库 Harbor

目录 一. 准备环境 1.1安装 Docker 1.2安装 Docker Compose 二. 下载 Harbor 安装包 三. 解压安装包 四. 配置 Harbor 五. 安装 Harbor 六. 访问 Harbor 七. 创建项目、用户和角色 一. 准备环境 确保您的服务器满足 Harbor 的系统要求。最低要求是至少 2 核 CPU、4GB…

【沁恒蓝牙mesh】CH58x串口环形FIFO数据处理

本文章主要针对沁恒科技的CH58x芯片,以 BLE_UART 工程为依托,介绍串口数据的接收与处理。 该工程中 串口数据的处理用到了环形FIFO机制,可作为其他开发工具 📋 个人简介 💖 作者简介:大家好,我…

【LLM数据篇】预训练数据集+指令生成sft数据集

note 在《Aligning Large Language Models with Human: A Survey》综述中对LLM数据分类为典型的人工标注数据、self-instruct数据集等优秀的开源sft数据集:alpaca_data、belle、千言数据集、firefly、moss-003-sft-data多轮对话数据集等 文章目录 note构造指令实例…

k8s扩缩容与滚动更新

使用kubectl run创建应用 kubectl run kubernetes-bootcamp \> --imagedocker.io/jocatalin/kubernetes-bootcamp:v1 \> --port8080 端口暴露出去 kubectl expose pod kubernetes-bootcamp --type"NodePort" --port 8080 使用kubectl create创建应用 kubect…

该产品与此版 VMware Workstation 不兼容,因此无法使用

目录 VMware虚拟机开机报错 解决错误 VMware虚拟机开机报错 配置文件“D:\Users\tyn\Documents\Virtual Machines\Ubuntu16 的克隆\Ubuntu16 的克隆.vmx”是由 VMware 产品创建,但该产品与此版 VMware Workstation 不兼容,因此无法使用。 无法打开配…

VMware 虚拟机三种网络模式详解

文章目录 前言桥接模式(Bridged)桥接模式特点: 仅主机模式 (Host-only)仅主机模式 (Host-only)特点: NAT网络地址转换模式(NAT)仅主机模式 (Host-only)特点: 前言 很多同学在初次接触虚拟机的时候对 VMware 产品的三种网络模式不是很理解,本文就 VMware 的三种网络模式进行说明…

线上异常的处理

一、线上问题的排查 进程ID 简称为PID free -m 查看内存使用情况 iostat 查看磁盘读写活动情况 netstat 查看网络连接情况 df -h 查看磁盘空间使用情况 du -sh 查看文件大小情况 1.1、top 命令查看CPU占用情况 top -n num 查看CPU占用最高的num个进程top -Hp PID 或 top -H -p…

Vulnhub系列靶机--- Hackadmeic.RTB1

系列:Hackademic(此系列共2台) 难度:初级 信息收集 主机发现 netdiscover -r 192.168.80.0/24端口扫描 nmap -A -p- 192.168.80.143访问80端口 使用指纹识别插件查看是WordPress 根据首页显示的内容,点击target 点击…

Java-类与对象(上)

什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。 面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。 以面向对象方式来进行处理,就…

宏病毒的实践

一、实验目的: 1、了解梅丽莎宏病毒基本概念 2、自己实验梅丽莎宏病毒 二、预备知识: 1.什么是word宏 宏是一个批处理程序命令,正确地运用它可以提高工作效率。微软的office软件运行用户自己编写,叫VBA的脚本来增加其灵活性&…

12. 登录拦截器

由于论坛中的所有功能接口都需要在用户登录的情况下才能访问,所以要做统一的登录身份校验。 1. 在 interceptor 包下创建 LoginInterceptor Component // 交给 Spring 管理 public class LoginInterceptor implements HandlerInterceptor {// 从配置文件中读取配…

ChatGPT和Claude的能力全测评

创造性思维/语言 提示:“写一首 4 行诗,每行只有 3 个词,描写重庆” ChatGPT写诗👇 Claude写诗👇 仁者见仁,您怎么看谁更强? 提示: "如果你随机选择这个问题的答案,…

postgresql 的递归查询

postgresql 的递归查询功能很强大,可以实现传统 sql 无法实现的事情。那递归查询的执行逻辑是什么呢?在递归查询中,我们一般会用到 union 或者 union all,他们两者之间的区别是什么呢? 递归查询的执行逻辑 递归查询的…

⛳ TCP 协议面试题

目录 ⛳ TCP 协议面试题🐾 一、为什么关闭连接的需要四次挥⼿,⽽建⽴连接却只要三次握⼿呢?🏭 二、为什么连接建⽴的时候是三次握⼿,可以改成两次握⼿吗?👣 三、为什么主动断开⽅在TIME-WAIT状态…

shell 简单且常用的几种

目录 一、配置环境的shell脚本 二、系统资源脚本 一、要求 二、脚本内容 三、脚本解析 四、赋权并验证 一、配置环境的shell脚本 systemctl stop firewalld systemctl disable firewalld systemctl stop NetworkManager systemctl disable NetworkManager setenforce…