全面分析Linux正则表达式(五)

运维 系统运维
前面几篇文正我们已经介绍了部分Linux正则表达式内容,这里重点介绍一下正则表达式中的断言(Assertions)。这部分内容我们用一篇文章来介绍。

在前面几篇文章中,我们介绍了Linux正则表达式的子模式,逆向引用和量词,在这篇文章里,我们将重点介绍正则表达式中的断言(Assertions)。 Linux正则表达式断言可能开始理解起来有些困难,我们应该加以重点分析。

断言(Assertions)

断言(Assertions)是在目标字符串的当前匹配位置进行的一种测试但这种测试并不占用目标字符串,也即不会移动模式在目标字符串中的当前匹配位置。

读起来似乎有点拗口,我们还是举几个简单的例子。

两个最常见的断言是元字符“^”和“$”,它们检查匹配模式是否出现在行首或行尾。

我们来看这个模式/^\d\d\d$/,试着用它来匹配目标字符串“123”。“\d\d\d”表示三个数字字符,匹配了目标字符串的三个字符,而模式中的^和$分别表示这三个字符同时出现在行首和行尾,而它们本身并不与目标字符串中的任何字符相对应。

其它还有一些简单的断言\b, \B, \A, \Z, \z,它们都以反斜线开头,前面我们已经介绍过反斜线的这个用法。这几个断言的含义如下表。

断言 含义
\b 字分界线
\B 非字分界线
\A 目标的开头(独立于多行模式)
\Z 目标的结尾或位于结尾的换行符前(独立于多行模式)
\z 目标的结尾(独立于多行模式)
\G 目标中的第一个匹配位置


注意这些断言不能出现在字符类中,如果出现了也是其它的含义,例如\b在字符类中表示反斜线字?

51cto

【编辑推荐】

  1. 全面分析Linux正则表达式(一)
  2. 全面分析Linux正则表达式(四)
  3. 详细剖析Linux服务器安全防护十个方面
  4. 详细介绍查看Linux硬件信息命令
  5. 好莱坞里Linux操作系统取代微软
责任编辑:小霞 来源: 中国网管联盟
相关推荐

2010-03-03 13:31:25

Linux正则表达式

2010-03-03 11:03:51

Linux正则表达式

2010-03-03 10:51:32

正则表达式

2010-03-03 12:58:41

Linux正则表达式

2010-03-03 12:53:50

Linux正则表达式

2022-01-04 11:35:03

Linux Shel正则表达式Linux

2010-07-14 09:47:04

Perl正则表达式

2017-05-12 10:47:45

Linux正则表达式程序基础

2010-07-13 16:56:30

Perl正则表达式

2018-09-27 15:25:08

正则表达式前端

2020-09-04 09:16:04

Python正则表达式虚拟机

2009-09-16 17:15:57

正则表达式引擎

2016-11-10 16:21:22

Java 正则表达式

2023-09-13 08:12:45

2010-03-25 18:25:36

Python正则表达式

2009-09-16 18:19:34

正则表达式组

2021-01-27 11:34:19

Python正则表达式字符串

2009-02-18 09:48:20

正则表达式Java教程

2011-06-02 12:34:16

正则表达式

2022-03-28 06:19:14

正则表达式开发
点赞
收藏

51CTO技术栈公众号