我做了一个python正则表达式,现在我应该用C++编写程序。Boost正则表达式不匹配
我被告知使用boost的正则表达式由各自的人。
它应该匹配一组至少包含1到80个下部字母数字字符,包括下划线后面跟一个反斜杠,然后另一组至少一个到80个下部字母数字字符再次包括一个下划线和最后一个但不是至少一个问号。总的字符串必须是至少1个字符长不得超过256
这里是我的Python的正则表达式:
^((?P<grp1>[a-z0-9_]{1,80})/(?P<grp2>[a-z0-9_]{1,80})([?])){1,256}$
我的电流提升正则表达式是:
^(([a-z0-9_]{1,80})\/([a-z0-9_]{1,80})([?])){1,256}$
砍倒基本上我的代码是这样的:
boost::cmatch match;
bool isMatch;
boost::regex myRegex = "^(([a-z0-9_]{1,80})\/([a-z0-9_]{1,80})([?])){1,256}$";
isMatch = boost::regex_match(str.c_str(), match, myRegex);
编辑:哎呦完全忘了问题的xDD。我的问题很简单:正则表达式不匹配,虽然它应该。
示例匹配将是:
- 一些/更多?
- 对象/值?
- devel42/version_number?
你能举一个不起作用的例子吗?我只是[试了一个测试](http://coliru.stacked-crooked.com/a/62da63bf5120eb97),它打印的是真的。虽然你的例子有一些小错误。 –
@JesseGood这应该是答案,因为你修正了次要的错误。 – tgmath
我做了一个编辑并发布了一些应该匹配的示例。我还测试了在线页面,并对它们进行了处理。 @tgmath我已经尝试了反斜杠之前没有斜杠的正则表达式(应该从我从正常表达式的页面中理解的内容中跳出反斜杠符号),我还试过[/],而不是我遇到的问题不幸的是.. –