grep --color -P '(?<=abc).*' <<<'abc 1234'
不会输出任何结果
但
grep --color -P '(?<=abc) .*' <<<'abc 1234'
可以, 区别在于后者需要被前置断言的是一个确定的字符, 前者则一个可变的字符
perl可以:
perl -e 'print "asdf\n" if "abc 1234" =~ /(?<=abc).*/'
而同样的grep, 在否定的前置断言中却是可以的, 在后置断言中的肯定和否则形式也都是可以的
grep --color -P '(?
grep --color -P '.*(?=1234)' <<<'abc 1234'
grep --color -P '.*(?!1234)' <<<'abc 1234'
PCRE号称 Perl Compatible Regular expression, 跟真正的Perl差距还远
grep 2.5.1 (redhat 8.0, 9.0) 测试
阅读(1735) | 评论(0) | 转发(0) |