gpt4 book ai didi

regex - 在 Rust 正则表达式中模拟环视行为的最明智的方法是什么?

转载 作者:行者123 更新时间:2023-11-29 07:46:03 25 4
gpt4 key购买 nike

rust regex crate状态:

This crate provides a native implementation of regular expressions that is heavily based on RE2 both in syntax and in implementation. Notably, backreferences and arbitrary lookahead/lookbehind assertions are not provided.

在撰写本文时,“rust regex lookbehind”没有从 DuckDuckGo 返回结果。

我以前从来没有解决过这个问题,但我可以想到两种方法:

方法一(前进)

  1. 迭代 .captures() 以获得我想用作后视的模式。
  2. 在两次捕获之间匹配我真正想要匹配的东西。 (转发)

方法 2(反向)

  1. 匹配我真正想要匹配的模式。
  2. 对于每个匹配项,寻找后向模式,直到前一个捕获的结束字节或字符串的开头。

这不仅看起来像一个巨大的痛苦,而且似乎很多边缘情况都会让我失望。有没有更好的方法来解决这个问题?

例子

给定一个字符串:

“Fish33-Tiger2Hyena4-”

我想提取["33-", "2", "4-"] 当且仅当每个都跟在像"Fish" 这样的字符串之后。

最佳答案

如果没有激励性的例子,就很难以一般的方式有用地回答您的问题。在许多情况下,您可以用两个正则表达式替换环视运算符——一个用于搜索候选项,另一个用于生成您感兴趣的实际匹配项。但是,这种方法并不总是可行的。

如果您真的遇到困难,那么您唯一的选择就是使用支持这些功能的正则表达式库。 Rust 绑定(bind)了其中的几个:

还有一个比较实验性的库,fancy-regex ,它建立在 regex crate 之上。

关于regex - 在 Rust 正则表达式中模拟环视行为的最明智的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37973332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com