Skip to Main Content
C++语言导学(原书第2版)
book

C++语言导学(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced content levelIntermediate to advanced
450 pages
5h 35m
Chinese
Pearson
Content preview from C++语言导学(原书第2版)

9.4.2 正则表达式符号表示

regex库可以识别几种正则表达式符号表示的变体。在本书中,我使用默认的符号表示,它是ECMA标准的一个变体,ECMA标准被用于ECMAScript中(更为人们所熟知的名称是JavaScript)。

正则表达式的语法基于一些特殊含义的字符。

例如,我们可以指定一个模式是以零个或多个A开头,后接一个或多个B,最后是一个可选的C:

下面这些字符串与此模式匹配:

下面这些字符串与此模式不匹配:

模式的一个组成部分如果被括号所包围,则它构成一个子模式(可从smatch中独立抽取出来)。例如:

通过添加后缀,可以指定一个模式是可选的或是重复的(默认恰好出现一次)。

例如下面的正则表达式:

下面两个字符串与之匹配:

下面几个字符串与之不匹配:

如果在任何重复符号(?、*、+及{})之后放一个后缀,会使模式匹配器变得“懒惰”或者说“不贪心”。即,当查找一个模式时,匹配器会查找最短匹配而非最长匹配。而默认情况下,模式匹配器总是查找最长匹配,这就是所谓的最长匹配法则(Max ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
软件开发实践:项目驱动式的Java开发指南

软件开发实践:项目驱动式的Java开发指南

Raoul-Gabriel Urma, Richard Warburton
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111633280