C++ C++;11正则表达式子串匹配

C++ C++;11正则表达式子串匹配,c++,regex,string,c++11,substring,C++,Regex,String,C++11,Substring,我在C++11中寻找一个正则表达式,它可以匹配字符串中的子字符串 类似于:“外面是个漆黑的夜晚……”我正在搜索方舟 因此,如果子字符串位于字符串中的某个位置,则该表达式应匹配。 此外,我想说的是,这个匹配应该区分大小写或不区分大小写 我已经试过了,但似乎不起作用 string str = "It´s a dark night out there..."; regex ex ("ark"); if (regex_match (str,ex)) cout << "Match f

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

类似于:
“外面是个漆黑的夜晚……”
我正在搜索
方舟

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

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

string str = "It´s a dark night out there...";
regex ex ("ark"); 
if (regex_match (str,ex))
    cout << "Match found!";
string str=“外面是个漆黑的夜晚……”;
正则表达式(“方舟”);
if(regex_匹配(str,ex))
不能使用而不是使用。后者尝试匹配整个主题字符串,而前者允许匹配子字符串


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

好的,谢谢你的帮助,我已经将它更正为
regex-ex(“ark”)
if(正则表达式搜索(str,ex))
@Xenogenesis为什么
*
?如果您使用
regex\u search
ark
就足够了。对不起,我还是不明白没有必要使用wildcard@Xenogenesis
regex_search
尝试从主题字符串中的每个位置开始进行匹配。这意味着,如果主题的任何子字符串与提供的模式匹配,
regex\u search
将找到它。您可以将
regex\u match
看作是相同的,但是它“秘密地”用
^yourpatternhere$
包围了您的模式。