Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 只搜索c+中字符串的开头+;使用正则表达式_C++_Regex_Visual Studio - Fatal编程技术网

C++ 只搜索c+中字符串的开头+;使用正则表达式

C++ 只搜索c+中字符串的开头+;使用正则表达式,c++,regex,visual-studio,C++,Regex,Visual Studio,编辑我正在尝试使用正则表达式从左到右标记一个字符串,其中包含要比较的正则表达式字符串列表。我决定在每个正则表达式字符串中添加插入符号,当我找到匹配项时,我将在匹配的正则表达式字符串后创建一个子字符串,并在该字符串的开头查找下一个匹配项 我有一个字符串列表要转换为正则表达式,以便在vectorcontainer中搜索。这里只是一个例子 vector<vector<string>> operators = { {{",|;|//.*"}}

编辑我正在尝试使用正则表达式从左到右标记一个字符串,其中包含要比较的正则表达式字符串列表。我决定在每个正则表达式字符串中添加插入符号,当我找到匹配项时,我将在匹配的正则表达式字符串后创建一个子字符串,并在该字符串的开头查找下一个匹配项

我有一个字符串列表要转换为正则表达式,以便在vectorcontainer中搜索。这里只是一个例子

vector<vector<string>> operators = { 
     {{",|;|//.*"}}                     //punctuation
     };

现在的问题是,对于标点正则表达式,它只会在开头查找逗号,然后在字符串中的任何位置查找其他匹配项,例如
a
将返回与
的匹配项。什么是最好的方式在C++中说我想要开始第一个匹配而不必搜索通过每个<代码> <代码>操作符来添加插入符号?< /p>你要通过制作子串来实现什么?您可以将整个字符串与正则表达式模式匹配。。?你能详细说明一下你想要达到的目标吗?好的,我补充了这个方法的目的。也许有比使用这种方法更好的方法。关于
^(,| | |/.*)
我有更多的正则表达式字符串,我希望不必全部更改它们,以防除了检查字符串的开头之外,我还需要这些正则表达式用于其他匹配。这只是要检查的正则表达式列表的一个示例。我想我可以在开头和结尾加上一个括号,如果我越过它,就会有一组不同的正则表达式。只是想知道是否有一个C++方法,我必须错过。
Token *find_Match(string &s, int i)
{
    string substring = s.substr(i, s.length() - i);
    string somestring
        for (string c : operators[x])
        {
            regex r = regex("^" + c);
            smatch sm;
            regex_search(substring, sm, r); // , std::regex_constants::;
            int size = sm.size();
            if (size > 0) //MATCH FOUND
            {
                  somestring = sm[0]
            } 
        }
    return somestring;
}