C++ 正则表达式

作用:C++正则表达式是一种用于匹配、搜索和替换文本的工具。它可以通过一些特定的语法规则来描述一些文本模式,然后在文本中查找符合这些模式的内容。正则表达式可以用于验证输入的数据是否符合特定的格式要求,也可以用于从文本中提取特定的信息。在C++中,可以使用正则表达式库来实现正则表达式的功能。常用的正则表达式库包括Boost.Regex和C++11标准库中的regex库。

匹配的规则:

  1. 元字符:
  • .:匹配任意一个字符
  • *:匹配前面的字符0次或多次
  • +:匹配前面的字符1次或多次
  • ?:匹配前面的字符0次或1次
  • ^:匹配字符串的开头
  • $:匹配字符串的结尾
  • []:匹配方括号中的任意一个字符
  • [^]:匹配不在方括号中的任意一个字符
  • ():分组,可以用于后向引用
  • | : 或者
  1. 转义字符:
  • \d:匹配数字字符
  • \D:匹配非数字字符
  • \w:匹配字母、数字、下划线字符
  • \W:匹配非字母、数字、下划线字符
  • \s:匹配空白字符
  • \S:匹配非空白字符
  • \b:匹配单词边界
  • \B:匹配非单词边界
  • \n:匹配换行符
  • \t:匹配制表符
  • {2,}至少两个

以上是C++正则表达式的一些常用规则,具体使用可以参考C++标准库中的regex类。

#include<iostream> 
#include<regex>
using namespace std;


int main(){

string str="HyperWorks contains HyperMesh and HyperView and HyperStudy.";
//Hyper 后面可以接受任何字符串
string pattern("Hyper.*");
//string pattern("Hyper[^ ]+[  |.]");
regex r(pattern);

//查找
for(auto it(str.begin(),str.end(),r);end_it;it!=end_it;it++){

cout<<it->str()<<endl;
}


//替换
string str2;
str2=regex_replace(str,r,"Hello");
cout<<str2<<endl;


//匹配
smatch result;

if(regex_match(str,result,r){

cout<<res[0]<<endl;
}





system("pause");
return 0;


}

cC++ 正则表达式_c++正则表达式_蒸肉大魔王的博客-CSDN博客

参考以上例子:

(1)邮箱验证代码

        

#include<iostream> 
#inclde<regex>
using namespace std;

int main(){
int res=0;
while(!res){
   string email;
   cout<<"please input your email"<<endl;
   cin>>email;
    if(regex_match(email,regex("[0-9,a-z,A-Z]{6,}@[0-9,a-z,A-Z]{2,}\\.com"))){
        cout<<email<<endl;
    }
    else{
        cout<<"input error"<<endl;
    }
  }

system("pause");
return 0;


}

(2)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值