vc 2010使用正则表达式的问题

kssk232 2015-03-30 05:05:51
我用vc2010写了下述代码,
include <regex>
using namespace std;
…………
string t_sSrc = "ABCDE";
regex_constants::syntax_option_type fl = regex_constants::icase;

regex t_Reg("ABC",fl);
smatch t_MR;

bool t_bRe = false;

t_bRe = regex_match(t_sSrc, t_MR, t_Reg);


执行结果,t_bRe始终是false。
这是为什么,哪位大侠知道该怎么改,在下在这里先谢过了
...全文
157 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
encoderlee 版主 2015-03-31
  • 打赏
  • 举报
回复
多调用几次就行了

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

void main()
{
string data = "This is : 192.168.0.1";
regex pattern("\\d+");
smatch match;
while (regex_search(data, match, pattern))
{
cout << match[0] << endl;
data = match.suffix();
}
}

kssk232 2015-03-31
  • 打赏
  • 举报
回复
我把t_sSrc的值改为"This is : 192.168.0.1" t_Reg的定义改为 regex t_Reg("\\d+",fl); 执行的结果仍然是false。 是否是这样的代码结果本就应是false?若是,是否有那个regex_match一类的函数可以执行一次就将t_sSrc中的192、168、0、1全部提起出来,而不是象regex_search每次只能提取最开始的一个?若有是哪个函数,应怎样写才能将所有符合要求的子串都一次全部提取出来?
encoderlee 版主 2015-03-30
  • 打赏
  • 举报
回复
因为"ABC"和"ABCDE"不匹配,所以regex_match返回false
mlqxj35674 2015-03-30
  • 打赏
  • 举报
回复
false是正确的
jiht594 2015-03-30
  • 打赏
  • 举报
回复
regex_search

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧