前端之家收集整理的这篇文章主要介绍了
tr1的正则表达式,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
string text("我的IP地址是:109.168.0.1.");
string newIP("127.0.0.1");
string regString("(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
// 表达式选项 - 忽略大小写
tr1::regex_constants::Syntax_option_type fl = tr1::regex_constants::icase;
// 编译一个正则表达式语句
tr1::regex regExpress(regString,fl);
// 保存查找的结果
tr1::smatch ms;
// 判断是否全行匹配
if(tr1::regex_match(text,ms,regExpress))
{
cout<<"正则表达式:"<<regString<<"匹配:"<<text<<"成功."<<endl;
}
else
{
cout<<"正则表达式:"<<regString<<"匹配:"<<text<<"失败."<<endl;
}
// 查找
if(tr1::regex_search(text,regExpress))
{
cout<<"正则表达式:"<<regString<<"查找:" << text<<"成功."<<endl;
for(size_t i= 0; i < ms.size(); ++i)
{
cout<<"第"<<i<<"个结果:\""<<ms.str(i)<<"\" - ";
cout<<"起始位置:"<<ms.position(i)<<"长度"<<ms.length(i)<<endl;
}
cout<<endl;
// 替换1
text = text.replace(ms[0].first,ms[0].second,newIP);
cout<<"替换1后的文本:"<<text<<endl;
}
else
{
cout<<"正则表达式:"<<regString<<"查找:"<<text<<"失败."<<endl;
}
// 替换2
newIP = "255.255.0.0";
string newText =regex_replace( text,regExpress,newIP);
cout<<"替换2后的文本:"<<newText<<endl;
// 结束
cout<<"按回车键结束...";
cin.get();
return 0;
}
原文链接:https://www.f2er.com/regex/361272.html