代码之家  ›  专栏  ›  技术社区  ›  Zachary Vance

无界向后看的理论含义是什么?

  •  2
  • Zachary Vance  · 技术社区  · 14 年前

    大多数语言都允许固定长度或有限长度的查找。一个值得注意的例外是.NET,它允许使用*运算符。

    但是,.NET正则表达式已经可以使用命名捕获识别平衡括号,而命名捕获不是常规语言。正则表达式是否仍有规律地在lookback中加*呢?*以外的子表达式的扩展答案(例如,附加lookaround!)也将不胜感激。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Community rcollyer    7 年前
        2
  •  0
  •   Alan Moore Chris Ballance    14 年前

    NET的无限lookbehind仅仅是对一个已经不规则的特性的改进:固定的、有限的或无限的lookbehind在规则语法中没有位置。lookaheads,capturing group,backreferences,不情愿的量词,所有格量词,原子组,条件句,单词边界,锚。。。

    如果我们不得不将自己局限于理论上纯正则表达式,99.9%的当前regex用户将无法使用它们。问一个功能是否“正常”是白费口舌;它是 有用的 ? 这才是最重要的。

        3
  •  0
  •   Zachary Vance    14 年前

    A(?<B) C组件 (?:交流&*BC),我们发现后面的人是有规律的。

    B可以包括清楚地使用任何不超过A/C界限的东西。也就是说,除了向前看。如果lookback可以使用lookahead,或者lookahead可以使用lookahead,会发生什么情况?开始工作。*BC。你仍然很好。