如何理解 boost::regex 的哪一部分无法匹配/搜索

发布于 2024-11-19 20:41:10 字数 433 浏览 2 评论 0原文

我使用 boost::regex 来匹配(更好的说法是 boost::regex_search)文本与正则表达式。

这个不匹配,我的正则表达式真的很大。

您知道库中是否有任何函数告诉我正则表达式的哪一部分无法匹配?

我正在使用 LINUX/gcc

     std::string text; // whatever
     boost::regex rgx( "(\\w+) (\\d+) (\\s+)" );
     boost::smatch m;
     if( !boost::regex_search( text, m, rgx ) ){
         // how to know where (\\w+) or (\\d+) or (\\s+) failed?
     }

I am using boost::regex to match (better to say boost::regex_search) a text vs a regular expression.

This one doesn't match and my regex is really huge.

Do you know if in the library is there any function telling me which part of the regex failed to match?

I am using LINUX/gcc

     std::string text; // whatever
     boost::regex rgx( "(\\w+) (\\d+) (\\s+)" );
     boost::smatch m;
     if( !boost::regex_search( text, m, rgx ) ){
         // how to know where (\\w+) or (\\d+) or (\\s+) failed?
     }

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

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

发布评论

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

评论(2

想你的星星会说话 2024-11-26 20:41:10

据我所知,库中没有可用的工具,但我使用的是 Boost 版本 1.28.0。

您是否尝试彼此独立地执行 (\w+)、(\d+) 和 (\s+) ?其中至少有一个应该匹配失败。

There is no tool for that in the library to my knowledge, but I was using Boost version 1.28.0.

Did you try to execute (\w+), (\d+) and (\s+) independantly of each other? At least one of them should fail matching.

岁吢 2024-11-26 20:41:10

尽快抓住琪琪。它是测试和使用正则表达式的宝贵工具。
如果您使用的是基于 Debian 的发行版,它应该位于基本存储库中。

Grab kiki asap. It's an invaluable tool for testing and playing with regex.
If you are using a debian based distro, it should be in the base repositories.

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