Geany的负断言文档让它看起来似乎是可能的。
供参考,这个可以工作并给我结果:
pcregrep -r "(?<!= )function\(" src/main-js/
但是相同的正则表达式,或者任何具有负回顾后断言的正则表达式,在从Geany(v 1.24.1)启动时没有返回结果。 问题出在哪里?文档有误吗? 精度: 这个话题不是关于如何避免使用负向后瞻,而是关于如何执行任何标准的PCRE负向后瞻。
Geany的负断言文档让它看起来似乎是可能的。
供参考,这个可以工作并给我结果:
pcregrep -r "(?<!= )function\(" src/main-js/
grep -E
,而-P
与之不兼容。-P
而不是-E
的shell脚本,并使用此脚本。您应该能够在Geany首选项中配置grep工具的调用。#!/bin/sh
matchopts=$(echo "$1" | tr E P)
shift
exec grep $matchopts "$@"
-F
或-E
(这是POSIX grep中唯一可用的引擎),因此您无法传递-P
。另一个解决方法是避免使用负回顾断言...但这样会变得更加丑陋:
(^.?|[^=] |=[^ ]|[^=][^ ])function
(?<!=\s)function\(
- Avinash Raj