Skip to Main Content
C++程序设计:原理与实践(进阶篇)(原书第2版)
book

C++程序设计:原理与实践(进阶篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced content levelIntermediate to advanced
450 pages
10h 35m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(进阶篇)(原书第2版)

23.9 使用正则表达式进行模式匹配

正则表达式有两种主要用途:

·搜索:在(任意长的)数据流中搜索与正则式匹配的字符串——regex_search()就实现此功能,它在数据流中搜索与正则式匹配的子串。

·匹配:判断一个字符串(已知长度)是否与模式匹配——regex_match()检查模式和给定字符串是否完全匹配。

23.6节中给出的搜索邮政编码的程序是正则式搜索功能的很好示例。下面,我们介绍一个匹配操作的例子。例如,我们需要从下表这样的结构中提取数据:

这个表记录的是Bjarne Stroustrup的母校在2007年的学生数,它实际上是从互联网上提取出来的,其原始格式看起来很整洁,而且正是我们进行数据分析时常见的那种典型格式:

·它包含数值域。

·它包含字符域,其中字符串只有了解上下文的人才知道其含义。(在本例中,这种情况更为明显,因为文字都是丹麦文。)

·字符串中包含空格。

·数据“域”用“分隔符”分开,在本例中,分隔符为制表符。

我们选择的这个例子“相当典型”而且“不是很困难”,但有一点比较微妙:人眼是无法看出空格和制表符之间的区别的,这只能在程序中进行区分。

我们将展示正则表达式的如下用途:

·验证表格布局是否正确(即,是否每行包含的域的数目都正确)。

·验证合计值是否正确(每列最后一行上的数值为其上所有数值之和)。 ...

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

JAVASCRIPT之美|聽頂尖程式設計師闡述他們的思維

JAVASCRIPT之美|聽頂尖程式設計師闡述他們的思維

Anton Kovalyov
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉
C++语言导学(原书第2版)

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

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9787111562528