使用 Boost Xpressive(静态表达式),我注意到当表达式是从子正则表达式构建时,模式搜索要慢得多。 我错过了什么? 还是设计与生俱来的? Xpresive 文档说https://www.boost.org/doc/libs/1_80_0/doc/html/xpressive/user_ ...
使用 Boost Xpressive(静态表达式),我注意到当表达式是从子正则表达式构建时,模式搜索要慢得多。 我错过了什么? 还是设计与生俱来的? Xpresive 文档说https://www.boost.org/doc/libs/1_80_0/doc/html/xpressive/user_ ...
我正在使用boost.xpressive静态模板来构造正则表达式,这些正则表达式将动态地连接成最终表达式。 动态版本具有可变宽度的重复,但是由于要在int向量中进行操作,因此我确实需要使用静态构造。 我确实需要创建repeat<N,M> ,其中N和M不是常数。 怎么 ...
我正在使用boost xpressive regex_replace。 替换后,我在字符串末尾得到了垃圾字符 ...
我正在转换一个正则表达式库(数千个perl正则表达式的库),并且遇到了一个主要问题。 这是我必须转换为静态xpressive的表达式: 该表达式after否定验证条件before和after 。 这意味着通常我应该使用~after和~before 。 但是,由于存在多字 ...
我在编译包含sregex类型的成员字段的类头时遇到麻烦。 该类定义为: 编译cpp类文件没有任何问题,但是当我将标题包含在使用该类的cpp文件中时,编译器将出现以下错误: 我在这里做错了什么? ...
嗨boost :: xpressive用户, 尝试使用boost :: xpressive解析一些决策树时,我遇到了堆栈溢出错误。 它似乎适用于一定大小的树,但在“大”树上失败,其中“大”似乎意味着大约3000个节点,而具有gdb的堆栈则为133979帧。 我想我需要以某种方式优化正则 ...
最近我使用boost xpressive来解析文件。 这些文件每个10 MB,将有几百个要解析。 Xpressive非常适合工作和清晰的语法,但问题来自于性能。 它在调试版本中如何爬行是令人难以置信的,而在发布版本中,每个文件花费的时间超过一秒。 我已经测试了旧的普通get_line ...
我每次检测到匹配时都试图将数据结构插入到向量中,但即使在编译时也是如此。 代码是下一个: 由于我在内部使用Data对象而无法编译“push_back”语义操作,因此无法懒惰地使用它(我猜,我不太确定)。 拜托,有人可以帮我吗? 注意 - 我不熟悉MS VS 2010(不完全 ...
我注意到当我在代码中使用xp :: sregex :: compile时,字符串... \\ 3rdparty \\ boost-1_58 \\ boost / xpressive / detail / core / matcher / regex_byref_matcher.hpp(带有我的本 ...
我试图在 VC 2008 中使用正则表达式,但是我不能使用 boost 库(或至少整个 boost 库)。 我已经看到 boost.xpressive 中的文件正在使用其他 boost 目录中的文件。 出于好奇,来自 boost.xpressive 的本教程提供了一种从链接下载 xpressiv ...
我想了解为什么在尝试使用带有以下字符串的BOOST的wsregex :: compile时我的程序崩溃: 在正则表达式伙伴中,一切似乎都很好。 我在RegexBuddy上使用了JGSoft风味选项。 我正在验证以下内容: 你们能帮我吗? 非常感谢。 ...
我试图用出色的Eric Niebler的出色的Boost.XPressive编写胡子解析器 。 但是由于这是我的第一个解析器,所以我对编译器编写者的“正常”方法和行话不熟悉,经过几天的试验和错误后感到有点迷失。 所以我来到这里,希望有人能告诉我我的愚蠢之举;) 这是带有我要提取的胡须模 ...
我只是无法获取regex_match函数来查找不区分大小写的匹配项。 虽然boost::xpressive::regex_constants::icase的定义 ,我使用转型(所以没有歧义的icase xpressive中的方法),我得到一个编译错误(VS2010): 错误C2440 ...
我可以使用Boost库的Xpressive来做一些像这样的正则表达式替换: 我需要的是用某个转换函数的结果替换捕获的部分,例如 所以上面提供的例子的结果将是cb gf 。 您认为实现这一目标的最佳方法是什么? 提前致谢! ...
Edit8:对于那些可能遇到同样问题的人,我首先发布了解决方案。 解决方案 : 用=分配正则表达式,而不是调用()运算符。 很好 那真是愚蠢。 原始问题 : 我已经和xpressive战斗了一段时间了,但是我还没有做任何事情。 使用以下代码: 我找不到我期 ...
(或者我认为)... 我使用boost :: xpressive作为我的正则表达式引擎来解析某些内容,但出现了段错误。 我怀疑应该归咎于递归和糟糕的正则表达式,因为gdb显示了300多个堆栈帧。 因此,这是我的(区分大小写)正则表达式,使用perl / python表示法: 我 ...
我有一个增强的xpressive sregex和语义操作,它等效于以下内容: 以前,我在boost 1.43上使用它时没有任何问题。 我最近不得不升级到新的增强功能,现在遇到了以下问题。 在boost 1.48上,当子匹配不匹配任何内容(因为它是可选的)时as对空s1对象执行as时a ...
假设我有一个这样的sregex对象: 我没有在xpressive文档中找到任何关于此的参考,尽管xpressive支持命名组就好了。 我知道可以通过组迭代很好,但是如何访问组名(如果组有名称)? 那么,我将如何遍历命名组? ...
似乎boost :: xpressive没有提供new运算符的延迟评估版本,因此此语义操作将无法编译: 是否存在在语义动作中使用new运算符的构造? 例如,boost :: phoenix为lambda提供了new_函数。 xpressive是否为语义动作提供类似的东西? ...