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