【问题标题】:boost regex recursive提升正则表达式递归
【发布时间】:2015-03-21 15:15:59
【问题描述】:

我构造了一个简单的递归正则表达式:

a(?0)?

这个正则表达式包含一个递归调用(?0)

它应该匹配任意长度的字符串,其中填充了 'a' 字符。 regex_match 仅针对“a”和“aa”返回 true,但无法匹配“aaa”和任何长度超过三个字符的字符串。

为什么?
我正在使用 boost 1.45

【问题讨论】:

  • 这个works in PCRE...嗯,这很有趣...也许是贪婪的怪癖? a?(?0) 匹配所有内容(但速度很慢)。

标签: regex recursion boost


【解决方案1】:

我联系了 boost.regex 的作者。 他告诉我这是一个错误。 任何递归调用都应避免使用重复。 比如(?N)?或 (?N){x,y}

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 2012-01-16
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多