grep)-6ren">
gpt4 book ai didi

regex - Geany 中的正则表达式搜索中是否可能出现负向后查找?

转载 作者:行者123 更新时间:2023-12-02 22:48:37 25 4
gpt4 key购买 nike

Geany's documentation on negative assertions让它们看起来像是可能的。

作为引用,这有效并给了我结果:

pcregrep -r "(?<!= )function\(" src/main-js/

但是相同的正则表达式,或任何具有负向后查找的正则表达式,从 Geany (v 1.24.1) 启动时没有给出任何结果

enter image description here

问题出在哪里?文档有误吗?

精确:主题不是关于如何避免消极看待后面的内容,而是关于如何做到任何标准 PCRE消极地向后看。

最佳答案

我在 Freenode 上获得了 Geany 开发人员的支持,这非常有帮助。这是他们告诉我的:

The documented RE syntax only applies to the RE engine directly used byGeany (e.g. in Find), but the Find in Files features calls the grep tool(as configured in preferences->tools->grep), which has its own syntax.For GNU grep, you can add "-P" to the "Extra options" field in thedialog

但是,尝试后,出现以下错误:

/bin/grep: conflicting matchers specified

...我被告知这是一个 Geany 错误。 Geany 调用 grep -E,而 -P 与其不兼容。

唯一的解决方法是让 shell 脚本调用 grep使用 -P 而不是 -E,并使用此脚本。您应该能够配置 grep 工具以在 Geany 首选项中调用。

上述 shell 脚本的示例:

#!/bin/sh

matchopts=$(echo "$1" | tr E P)
shift

exec grep $matchopts "$@"

Geany 使用 either -F or -E (这些是 POSIX grep 中唯一可用的引擎)对于 grep,因此不能传递 -P

我已举报the bug致 Geany 开发者。

关于regex - Geany 中的正则表达式搜索中是否可能出现负向后查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29033499/

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