c++: 没有重载函数 "regex_search"的实例与参数列表匹配

标签 c++ regex

<分区>

在我的 C++ 类(class)中,我们得到了一个“简单的正则表达式赋值”。但每次我尝试在 Visual Studio Community 2015 中使用 regex_search() 时,我都会得到“没有重载函数实例“regex_search”与参数列表匹配”。我将鼠标悬停在错误上,它告诉我它想要(例如)string, smatch, string;这正是我给它的。

这是我的代码:

include <iostream>
include <string>
include <regex>

using namespace std;

int main( int argc, char *argv[] )
{
    string regexCriteria1 = "\\.$";
    string test = "asdf.";
    smatch searchResult;

    for each ( string line in quotes ) // I have also tried const auto &line in quotes
    {
        cout << regex_search( line, regexCriteria1 ) << endl;
        regex_search( line, searchResult, regexCriteria1 );
        regex_search( line.begin(), line.end(), searchResult, regexCriteria1 );
    }
    regex_search( test, searchResult, regexCriteria1 );
}

我不知道为什么这些 regex_search() 行都不起作用。这应该是一个 45 分钟的项目,它已经花了我 2 个多小时,而且我还远远没有完成。在 Java 中,这只需要我 5 分钟。任何帮助将不胜感激。我的妻子开始担心我的理智。

最佳答案

std::regex_search 要求将搜索模式指定为 std::regex,但您传递的是原始字符串。

尝试:

std::regex_search( line, searchResult, std::regex(regexCriteria1) );

附言"using namespace std;" is a bad practice .

关于c++: 没有重载函数 "regex_search"的实例与参数列表匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36490043/

相关文章:

c++ - 使用 C++ 可以从方法返回 sqlite3_stmt 吗?

c++ - 标准的意图是任何形式的 `nested-type-specifier followed by an identifier` 都可以称为合格 ID

c++ - 阵列性能问题

Java正则表达式从给定字符串中提取单词

regex - R - 使用正则表达式的子文本

java - 如何将字符串拆分为两个考虑字符串末尾的数字(在方括号内)

python - 执行 re.findall 后查找正则表达式模式

javascript - 如何使用正则表达式 (RegEx) 提取文本?

c++ - 为什么提取运算符不起作用?

c++ - C++中使用前声明的规则是什么?