编辑我正在尝试使用正则表达式从左到右标记一个带有要与之比较的正则表达式字符串列表的字符串。我决定通过在每个正则表达式字符串中添加插入符号来完成此操作,当我找到匹配项时,我将在匹配的正则表达式字符串后创建一个子字符串,并在该字符串的开头查找下一个匹配项。
我有一个字符串列表要转换为正则表达式以在vectorcontainer中搜索。这只是一个例子
2016/12/31 16:35 34
2016/12/31 16:35 36
然后我接受子字符串并在开头搜索每个字符串以进行匹配。在这种情况下,我在每个字符串的开头添加一个插入符号,然后将其添加到正则表达式中:
vector<vector<string>> operators = {
{{",|;|//.*"}} //punctuation
};
现在的问题是,对于标点符号正则表达式,它只会在开头查找逗号,然后在字符串中的任何位置查找其余的匹配项,例如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;
}
将返回匹配项a;
。 C ++中最好的方式是说我想要开始第一场比赛,而不必搜索每个;
运算符来添加插入符号?