boost::sregex_令牌_迭代器与有效的正则表达式模式不匹配

boost::sregex_令牌_迭代器与有效的正则表达式模式不匹配,boost,boost-regex,Boost,Boost Regex,我有以下字符串: <? repeat min=1 max=2 ?>[A-Z0-9]{6},< ? endrepeat ?>100,USD,Washington [A-Z0-9]{6},100美元,华盛顿 和之间没有空格?在实际字符串中 我正在使用以下代码: boost::regex repeatRegex("<\? repeat min=[0-9]+ max=[0-9]+ \?>(.*)<\? endrepeat \?>"); std::str

我有以下字符串:

<? repeat min=1 max=2 ?>[A-Z0-9]{6},< ? endrepeat ?>100,USD,Washington
[A-Z0-9]{6},100美元,华盛顿
和之间没有空格?在实际字符串中

我正在使用以下代码:

boost::regex repeatRegex("<\? repeat min=[0-9]+ max=[0-9]+ \?>(.*)<\? endrepeat \?>");
std::string theString = "<? repeat min=1 max=2 ?>[A-Z0-9]{6},<? endrepeat ?>100,USD,Washington";
boost::sregex_token_iterator itr(repeatDefinition.begin(), repeatDefinition.end(), repeatRegex);
boost::sregex_token_iterator end;

std::cout << std::endl << repeatDefinition << std::endl;
for(; itr != end; ++itr)
{
    std::cout << *itr << std::endl;
}
boost::regex repeatRegex((*);
std::string theString=“[A-Z0-9]{6},100美元,华盛顿”;
sregex_令牌_迭代器itr(repeatDefinition.begin(),repeatDefinition.end(),repeatRegex);
boost::sregex_token_迭代器end;

std::cout首先,我希望您知道这样一个事实,您将
repeatDefinition
字符串
混合作为标识符

第二,您需要在C++字符串文本中逃出<代码> \/COD>:

boost::regex repeatRegex("<\\? repeat min=[0-9]+ max=[0-9]+ \\?>(.*)<\\? endrepeat \\?>");
boost::regex repeatRegex((*);
查看它

另外,请注意以下回答:


  • 当然!我计划使用正则表达式比较两个xml文件(一个文件包含适当的正则表达式标记)。这个想法实际上是将XML视为另一个文本文件。你认为它会起作用吗?太好了。。。让我来拿这条带子。您正在使用regexen来匹配两个xml文件的内容,其中包含。。。正则表达式标记?一个文件将包含正则表达式,而另一个文件将包含实际内容。第一个文件是一个模板文件,用于检查实际xml文件内容的有效性?为什么要发明轮子呢?它将用于一个测试工具,该工具应该能够接受任何文本文件进行验证(不限于xml),并且将有一个相应的模板文件(具有适当的正则表达式)。因此,只要工具得到一个包含所有正确正则表达式的正确基线模板文件,它甚至不应该关心需要验证的文件。