【问题标题】:C++11 regex substring matching [duplicate]C++11 正则表达式子字符串匹配
【发布时间】:2012-11-10 01:30:32
【问题描述】:

我正在寻找 C++11 中的正则表达式,它可以匹配字符串中的子字符串。

类似:"It´s a dark night out there...",我正在搜索 ark

因此,如果子字符串在字符串中的某个位置,则此表达式应匹配。 此外,我想选择说这个匹配是否区分大小写。

我已经尝试过了,但它似乎不起作用......

string str = "It´s a dark night out there...";
regex ex ("ark"); 
if (regex_match (str,ex))
    cout << "Match found!";

有人知道类似的吗?

【问题讨论】:

    标签: c++ regex string c++11 substring


    【解决方案1】:

    使用regex_search 代替regex_match。后者尝试匹配整个主题字符串,而前者允许匹配子字符串。

    这里是可能的flags,其中一个(第一个)表示不区分大小写的匹配。

    【讨论】:

    • 好的,感谢您的帮助,我已将其更正为 regex ex ("ark");if (regex_search (str,ex))
    • @Xenogenesis 为什么是.*?如果你使用regex_searchark 就足够了。
    • 对不起,我仍然对不需要通配符感到困惑
    • @Xenogenesis regex_search 从主题字符串中的每个位置开始尝试匹配。这意味着,如果您的主题的 any 子字符串与提供的模式匹配,regex_search 会找到它。您可以将regex_match 视为相同,但它“秘密地”用^yourpatternhere$ 围绕您的模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2013-04-13
    • 2022-07-11
    • 2011-12-21
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多