正则表达式之基础(四)

匹配组

正则表达式中用一对圆括号()表示一个匹配组,括号中的匹配内容则被看做是一个整体。

(regex)

表示匹配regex并获取到一个自动命名的组,自动命名的组是从下标1开始的,依次是1,2,3,4,5。。。

([A-Z])(-)(\d{2,3})(-\d{2,3}[A-Z])?

其中就有四个匹配组,并且自动命名为1,2,3,4

(?<name>regex)

当然我们也可以用这种方式来为一个匹配组命名

(?<Group1>[A-Z])(?<Group2>-)(?<Group3>\d{2,3})(?<Group4>-\d{2,3}[A-Z])?

非获取匹配组

以上两种匹配组都是获取匹配,匹配到后会将结果保存已被后续的使用。典型的用法就是后项引用:

<(h\d)>.*?</\1>

关于非获取匹配我在上一篇 正则表达式之基础(三) 中已经介绍过,这里简单再总结一下,基本可以理解为,(?<=regex)以什么开头,(?<!regex)不以什么开头,(?=regex)以什么结尾,(?!regex)不以什么结尾

虽然这些都会包含一对圆括号,但匹配结果并不会被保存以备后用

替换

有了上面匹配组的一些简单知识,我们就可以运用它来做一些简单的替换操作了。

P-53-189A

-》

P-73-189A

([A-Z])(-)(\d{2,3})(-\d{2,3}[A-Z])?

$1-73$4

(?<Group1>[A-Z])(?<Group2>-)(?<Group3>\d{2,3})(?<Group4>-\d{2,3}[A-Z])?

${Group1}-73${Group4}

替换元素

替换 说明
$number 包括替换字符串中的由 number 标识的捕获组所匹配的最后一个子字符串,其中 number 是一个十进制值
${name} 包括替换字符串中由 (?<name> ) 指定的命名组所匹配的最后一个子字符串
$$ 包括替换字符串中的单个“$”文本
$& 包括替换字符串中整个匹配项的副本
$` 包括替换字符串中的匹配项前的输入字符串的所有文本
$’ 包括替换字符串中的匹配项后的输入字符串的所有文本
$+ 包括在替换字符串中捕获的最后一个组
$_ 包括替换字符串中的整个输入字符串

参考

实用正则表达式匹配和替换

正则表达式中的替代

时间: 2024-10-13 10:34:38

正则表达式之基础(四)的相关文章

JS基础四

1.函数是一组可以随时随地运行的语句. 函数是 ECMAScript 的核心. 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 2.闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量. 3.把对象的所有引用都设置为 null,可以强制性地废除对象.object  设置为null, 4.本地对象(native object) Object Function Array String Boolean Numb

javascript中正则表达式的基础语法

× 目录 [1]定义[2]特点[3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当重要的知识,本文将介绍正则表达式的基础语法 定义 正则表达式(Regular Expression)是一门简单语言的语法规范,是强大.便捷.高效的

正则表达式的基础组成部分

在shell环境中,通配符能够匹配文本范围相当有限.正则表达式是一种用于文本匹配的形式小巧.且高度针对性的编程语言.例如: @[a-z0-9]+\.[a-z]+ 就是一个能匹配电子邮件的正则表达式. 正则表达式的基础组成部分如下所示: 正则表达式 描述 示例 ^ 行起始标记 ^a匹配以a起始的行 $ 行尾标记   a$匹配以a结尾的行 . 匹配任意一个字符    a.匹配ab,ac,ad,....但不能匹配abc,他只能匹配单个字符 []  匹配包含在[]中的任意一个字符            

正则表达式之基础篇

今天看了鸟哥的linux私房菜,关于正则表达式:简单做笔记如下: [:upper:] 大写字母 A-Z [:lower:] 小写字母 a-z [:digit:]  数字 0-9 [:alpha:] 字母   A-Z a-z [:alnum:] 字母和数字 A-Z a-z 0-9 首先介绍几个字符: ^ 表示行首  (^在方括号[ ]内表示不包含,在[ ]外表示行首!!!) $ 表示行尾 [] 无论括号内有几个字符,只能代表 "其中一个"!!! { } 表示字符出现的次数,由于花括号本身

正则对象与正则表达式的基础学习

正则对象与正则表达式的基础学习 正则表达式是文字匹配的工具,它更像是一个文字模版,只要符合条件的结果都会被筛选出来. 正则表达式在使用上,它依赖于正则对象提供的方法与属性,所以使用正则表达式之前要定义正则对象. 正则表达式的两种使用方式: 1. 定义正则对象 var reg = new RegExp( /regexpression/modified ) //格式一 var reg = new RegExp( 'regexpression' , 'modified' ) //格式二 2. 直接量的

Java基础四

Java基础四 一.Switch语句 二.if和switch区别 推荐使用if 三.函数 Java中的函数和方法是同一个词 四.数组 4.1.数组常见错误 五.内存机制 六.转换成十六进制 移位 &操作 6.2 查表法求十六进制 查表法很多时候都非常好用,这样就非常好了,真的非常好用 算的时候直接移四位,我喜欢,我觉得以后可以多做移位运算,真的是简单方便 6.3 查表法求星期几

C# Socket基础(四)之客户端向服务器发消息

private Socket socketClient;//客户端套接字,关于实例化请参考C# Socket基础(三)之客户端连接服务器和接收消息 客户端发送消息 1 /// <summary> 2 /// 发送数据到服务端 3 /// </summary> 4 private void Send() 5 { 6 if (socketClient == null) 7 { 8 9 ShowMsg("服务器未启动!"); 10 return; 11 } 12 by

php、linux、javascript 正则表达式学习基础总结

正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 文章来源于作者个人空间http://www.ilovehai.com PHP 正则表达式中包含三种元素分别为:量词.元字符.修饰符量词 语法                    描述+      

Python全栈开发【基础四】

Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 匿名函数 lambda表达式:对于简单的函数,存在一种简便的表示方式,即lambda表达式 1 #这段代码 2 def calc(n): 3 return n**n 4 print(calc(10)) 5 6 #换成匿名函数 7 calc = lambda n:n**n 8 print(calc(10)) 匿名函数主要是和其它函数搭配使用 举例: 1 ########