正则表达式匹配

发布于 2024-10-12 18:10:13 字数 271 浏览 3 评论 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");

该函数返回 false。为什么?

I have one function for checking, whether entered line is "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");

the function returns false. Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2024-10-19 18:10:13

也许语法没问题,但取决于实现。
查看此帖子

或者这个

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

Perhaps the syntax is ok, but depends on the implementation.
Check this post.

Or this:

After further investigation, I (we) have determined that the TR1
framework supplied by Microsoft with Visual Studio 2008 [and
some very early versions of Visual Studio 2010] is buggy, which makes
me wonder why the other regex's supplied by Dinkumware are not buggy.
Or are they?

独留℉清风醉 2024-10-19 18:10:13

我本以为应该匹配。

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

I would have thought that should match.

Is there potentially a bug in the implementation of the tr1 library? Maybe it is getting confused with the "-" that is used as the range specifier.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文