为什么 git-log with perl regex negative lookbehind 导致致命错误?
Why is git-log with perl regex negative lookbehind causing a fatal error?
要么我无法获得 git-log 的正则表达式 grep 功能以使用基于 perl 的正则表达式 (pcre) 进行搜索,要么我可以但它不适用于负向后视。
git log -p -P -G'(?<!-)title'
输出结果
fatal: invalid regex: Invalid preceding regular expression
但是,如果 git-grep 是任何指标,pcre 支持和负面回顾似乎在起作用。
例如。 git grep -P '(?<!-)title'
returns 预期结果。
git 版本 2.21.0 (Apple Git-122.2)
-P
不影响 -G
。您可以通过将 -P
替换为 -F
(或 --fixed-string
)来验证它:您仍然会遇到相同的错误,即使在固定字符串中根本没有环视。
-P
的文档说
Consider the limiting patterns to be Perl-compatible regular expressions.
注意单词 "patterns"。事实上,--grep
选项提到了它:
--grep=<pattern>
另一方面,-G
没有:
-G<regex>
要么我无法获得 git-log 的正则表达式 grep 功能以使用基于 perl 的正则表达式 (pcre) 进行搜索,要么我可以但它不适用于负向后视。
git log -p -P -G'(?<!-)title'
输出结果
fatal: invalid regex: Invalid preceding regular expression
但是,如果 git-grep 是任何指标,pcre 支持和负面回顾似乎在起作用。
例如。 git grep -P '(?<!-)title'
returns 预期结果。
git 版本 2.21.0 (Apple Git-122.2)
-P
不影响 -G
。您可以通过将 -P
替换为 -F
(或 --fixed-string
)来验证它:您仍然会遇到相同的错误,即使在固定字符串中根本没有环视。
-P
的文档说
Consider the limiting patterns to be Perl-compatible regular expressions.
注意单词 "patterns"。事实上,--grep
选项提到了它:
--grep=<pattern>
另一方面,-G
没有:
-G<regex>