助推中的非贪婪匹配.Regex扩展Regex
Non-greedy match in a Boost.Regex extended regex
我试图为boost regex引擎编写一个正则表达式,该正则表达式具有扩展语法,涉及非贪婪重复。然而,对于任何正则表达式(甚至像"a.*?b"一样简单),我得到一个"无效的前正则表达式"异常。
简单的boost::regex调用导致的问题:
boost::regex e("a.*?b", boost::regex_constants::extended);
它可以完美地与perl语法一起工作,但是使用基本或扩展以外的语法不幸不是一个选项(我不能修改构建regex对象的代码)。boost版本是1.39.
是否有可能在扩展语法中使用非贪婪表达式?
谢谢。
使用perl风格支持:
#include <boost/regex.hpp>
int main()
{
boost::regex e("a.*?b", boost::regex_constants::perl);
assert(boost::regex_match("acdefghijklmnopqb", e));
}
查看Live On Coliru
相关文章:
- 此模式的C++RegEx
- 贪婪算法编号列表
- C++ std::regex 使用前瞻失败
- std::regex:匹配由数字和空格组成的字符串,并提取数字.如何?
- 使用 boost::regex 从目录中获取带有一些正则表达式的文件名称时出现意外输出
- 用给定面值的最小硬币数量计价金额.贪婪的问题
- 你能防止 std::regex 在无效表达式上抛出异常吗?
- 使用Regex解析cpp中的字符串并创建映射
- C++:如何用split查找单词?Regex
- 在VC2015U3上,std::regex比boost::regex慢得多
- 是否有更有效的方法来生成日期的REGEX字符串
- 在C++中使用带有regex的捕获组
- 将std::regex设置为静态的好主意吗
- 为什么Regex(c++)需要指数时间
- std::regex and dual ABI
- C++11 std::regex后备选项
- 以不同的方式替换每一项,regex c++
- 使用 boost::regex (c++) 比较两个正则表达式
- Build Boost Regex for Windows VS2013
- 助推中的非贪婪匹配.Regex扩展Regex