简介
regex是C++标准库中用于正则表达式(regular expression)的部分。
大致有如下常用组件:
组件名称 | 作用 |
---|---|
regex | 表示有一个正则表达式的类 |
regex_match | 将一个字符序列与一个正则表达式匹配 |
regex_search | 寻找第一个与正则表达式匹配的子序列 |
regex_replace | 使用给定格式替换一个正则表达式 |
sregex_iterator | 迭代器适配器,内部调用regex_search来遍历一个string中所有匹配的子串 |
smatch | 容器类,保存在string中搜索的结果 |
ssub_match | string中匹配的子表达式的结果 |
示例
在下面一个简单的例子里使用一些组件
#include<regex>
#include<iostream>
using namespace std;
//正则表达式
void main()
{
string pattern = "^([a-z]|_)[[:alnum:]]+";
//开头的^表示从字符串开头开始匹配,|表示或,alnum表示字母或数字,+表示至少重复一次
regex r(pattern, regex::icase);//初始化正则表达式类,icase表示忽略大小写
string s("Asff");
smatch results;//用于保存成功匹配的相关信息
if (regex_search(s, results, r))
cout << results.str() << endl;
s="_qwer";
if (regex_search(s, results, r))
cout << results.str() << endl;
s="9sff";
if (regex_search(s, results, r))
cout << results