我通读了n1429 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1429.htm与该部分
算法 regex_match 和 regex_search 都支持正则表达式库中不常见的功能:部分匹配。当旗帜std::regex_constants::match_partial
在传递给算法的标志中设置,则如果匹配一个或多个字符,则可能返回 true 结果,然后状态机到达字符序列的末尾,同时仍有状态需要匹配。 [...]
但我在 FCD 中找不到该功能的任何踪迹,在当前 gcc-4.7.0 的标头中也找不到该功能的任何痕迹。我还寻找了 n1429 的修订版,但再次没有找到任何东西。我知道该提案的基础起源于 Boost 并进入了 TR1。但不知道什么时候match_partial
消失了。
Is the 部分匹配特征还在 C++11 中吗?也许有不同的名字?
看来match_partial
标志被删除N1723 “图书馆 TR 问题的拟议解决方案” http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2004/n1723.htm(2004 年 10 月)作为决议N1507 “正则表达式提案勘误表” http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1507.htm:
7.34 match_partial标志的含义
删除 match_partial。
理由根据N1837 《库扩展技术报告——问题清单》 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1837.pdf就是它:
LWG 一致认为这是一个有用且可实现的功能,但我们已经反复尝试过
并未能给出足够的规格。我们希望能够添加此功能
在未来的版本中。
我猜 C++11 中没有替代品。不过,您仍然可以使用 Boost.Regex (其中std::regex
来自),它支持部分匹配 http://www.boost.org/doc/libs/1_47_0/libs/regex/doc/html/boost_regex/partial_matches.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)