加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式之分组(捕获)、后向引用

发布时间:2020-12-13 19:52:04 所属栏目:百科 来源:网络整理
导读:分组 正则表达式中的分组又称为子表达式,就是把一个正则表达式的全部或部分当做一个整体进行 处理,分成一个或多个组。其中分组是使用 “()” 表示的。进行分组之后“()”里面的内容就会被当 成一个整体来处理。 先看看一个具体的例子吧: 同时我们可以

分组

正则表达式中的分组又称为子表达式,就是把一个正则表达式的全部或部分当做一个整体进行

处理,分成一个或多个组。其中分组是使用“()”表示的。进行分组之后“()”里面的内容就会被当

成一个整体来处理。

先看看一个具体的例子吧:

同时我们可以使用“()”限制替换的范围

分组可以分为捕获组和非捕获组.

捕获组

可以通过从左到右通过其括号对其进行编号:

需要注意的是组零永远代表的是整个正则式,通过这样命名保存了匹配分组的匹配的序列,

捕获的子序列就可以通过后向引用在表达式中使用了,也可以从匹配器中检索。

至于后向引用其实就是对匹配组的一种快捷指令,用法后面会介绍.

非捕获组

(?) 开头的组是纯的非捕获 组,它不捕获文本 ,也不针对组合计进行计数。就是说,

如果小括号中以?号开头,那么这个分组就不会捕获文本,当然也不会有组的编号,因此

也不存在Back 引用。

测试匹配性 (?<!4)56(?=9) 这里的含义就是匹配后面的文本56前面不能是4,后面必须

是9组成。因此,可以匹配如下文本 5569 ,与4569不匹配。


后向引用

当一个正则表达式被分组后,每个组将会自动的分配一个组号用于代表该组的表达式,

其中,组号的编制规则为:从左到右、以分组的左括号“(”为标志,第一个分组的组号为1

第二个分组的组号为2,以此类推。

反向引用提供查找重复字符组的方便的方法。它们可被认为是再次匹配同一个字符串的快捷指令。

如何理解呢?先看看一个例子吧。

1、匹配“javajava”

仅仅使用分组实现:(java)(java)

使用后向引用的方法:(java)1

貌似上面也没看出啥区别呀,在来一个例子

2、直接对比(w)1和(w)(w)的区别

该正则匹配的是出现两次的字符.1将重复匹配(w)出现的内容!


该正则只是简单的匹配两个字符,注意区别!

再给个例子:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读