C++正则表达式

Contents
[隐藏]

1.前言

主要会写到C++中正则表达式常用到的三个方法(全文匹配、搜索和替换)的作用以及区别。本篇博客不涉及正则表达式语法的基本内容,如果你对正则表达式不了解,可以访问这个链接获得帮助。

2.转义字符

在讲具体方法之前,我们先了解下C++中使用正则表达式需要注意的一个问题:转义字符。

  • \d:匹配一个数字字符;
  • + :匹配一次或多次;

C++中必须要对表达式中的’’进行转义,为什么?

3.regex_match

3.1.基本概念

match是全文匹配,即要求整个字符串符合匹配规则。

上述方法返回值为bool值,主要用于if条件表达式中。

3.2.匹配结果

更多的时候我们希望能够获得匹配结果(字符串),对结果进行操作。这时就需要对匹配结果进行存储,共有两种存储方式。

第二种方式使用起来更简洁、方便,推荐

3.3.实例

下面看一个match方法匹配的实例,看看实际应用:

result[]result.str()这两种方式能够获得相同的值,我更喜欢用数组形式的。
在匹配规则中,以括号()的方式来划分组别,实例中的规则共有两个括号,所以共有两组数据。

4.regex_search

3.1.基本概念

search是搜索匹配,即搜索字符串中存在符合规则的子字符串。

match与search一比较便知:

3.3.实例

直接看例子:

只需要利用迭代器就可以很轻松的访问到所有匹配的结果值。

5.regex_replace

3.1.基本概念

replace是替换匹配,即可以将符合匹配规则的子字符串替换为其他字符串。

5.2.扩展

除了直接替换以外,还有可以用来调整字符串内容(缩短、顺序等)。

$n用于表示第n组匹配数据(组这个概念在文章前面部分提到过),所以我们可以利用这种方式来将字符串的内容进行调整。

5.3.匹配忽略大小写

有时我们希望能够匹配的时候忽略大小写,这时候就要用到Regex的语法选项了。

regex::icase:匹配时忽略大小写。

5.4.帮助网站

附上两个写正则表达式常用到的网站

 

转自;https://blog.csdn.net/qq_34802416/article/details/79307102

分享到:

发表评论