August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
正则表达式是一种很强大的文本处理工具,它提供了一种简单、精炼的方法描述文本中的模式(例如,形如TX 77845的美国邮政编码,或形如2009-06-07的ISO风格的日期),它还提供了高效查找这种模式的方法。在<regex>中,标准库定义了std::regex类及其支持函数来提供对正则表达式的支持。下面是一个模式的定义,你可以从中领略regex库的风格:
在其他语言中使用过正则表达式的人会发现\w{2}\s*\d{5}(-\d{4})很熟悉。它指明了一个以两个字母开始(\w{2})的模式,后面是可选的若干空白符\s*,再接下来是五个数字\d{5},然后是可选的一个破折号和四个数字-\d{4}。如果你还不熟悉正则表达式,现在可能是一个学习它的好时机([Stroustrup,2009],[Maddock,2009],[Friedl,1997])。
为了表达模式,我使用了一个原始字符串字面值(raw string literal),它以R"(开始,以")结束。原始字符串字面值的好处是可以直接包含反斜线和引号,因此非常适合表示正则表达式,因为其中常常包含大量反斜线。如果我使用常规字符串,模式定义需要写成如下这样:
在<regex>中,标准库为正则表达式提供了如下支持:
Read now
Unlock full access