0

我有一个检查功能,输入的行是否为“OK”。

#include <tr1/regex>

bool lineIsValid(string line) {
    const tr1::regex pattern("[^-]{1,30} - [^-]{1,30}");
    return tr1::regex_match(line, pattern);
}

lineIsValid("test - test");

该函数返回假。为什么?

4

2 回答 2

2

也许语法没问题,但取决于实现。检查这篇文章

或者这个

经过进一步调查,我(我们)确定 Microsoft 提供的带有 Visual Studio 2008 [和一些非常早期的 Visual Studio 2010 版本] 的 TR1 框架存在错误,这让我想知道为什么 Dinkumware 提供的其他正则表达式没有错误。还是他们?

于 2011-01-17T19:42:25.290 回答
0

我原以为应该匹配。

tr1 库的实现中是否存在潜在的错误?也许它与用作范围说明符的“-”混淆了。

于 2011-01-17T19:08:28.290 回答