gpt4 book ai didi

python - "use\G in negative variable-length lookbehinds to limit how far back the lookbehind goes"示例

转载 作者:太空狗 更新时间:2023-10-29 21:31:26 24 4
gpt4 key购买 nike

在令人敬畏的正则表达式模块 (https://pypi.python.org/pypi/regex) 的 pypi 页面中指出\G 可以“在负的可变长度后视中使用以限制后视的距离”。非常有趣,但该页面没有给出任何示例,当我尝试想象一个时,我的白带 regex-fu 简直令人窒息。

谁能描述一些示例用例?

最佳答案

这是一个使用 \G 的例子和创造性的消极回顾:

regex.match(r'\b\w+\b(?:\s(\w+\b)(?<!\G.*\b\1\b.*\b\1\b))*', words)

words应该是由单个空格分隔的字母数字字符串,例如 "a b c d e a b b c d" .

该模式将匹配一系列独特的单词。

  • \w+ - 匹配第一个词。
  • (?:\s(\w+\b) )* - 匹配附加词 ...
  • (?<!\G.*\b\1\b.*\b\1\b) - ...但是对于添加的每个新词,检查它在我们到达 \G 之前是否已经出现.

模式末尾的回顾,限制在 \G可以断言当前匹配的另一个条件,否则这是不可能的。基本上,该模式是 using lookaheads for AND logic in regular expressions 的变体。 , 但不限于整个字符串。

这是一个 working example在 .Net 中,具有相同的功能。
使用 findall 在 Python 2 中尝试相同的模式和 regex模块给我一个段错误,但是 match似乎有效。

关于python - "use\G in negative variable-length lookbehinds to limit how far back the lookbehind goes"示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27562751/

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