Android shell脚本grep

Android shell脚本grep,android,grep,Android,Grep,我正试图使用Android shell(带Busybox)编写一个脚本来扫描一些.xml文件以提取信息,但是,我在一些优化方面遇到了困难 不应该,比如 (ax)b 相配 axbxc 事实并非如此;当我尝试在Android上执行此操作时(4.2.2,Busybox 1.20.2,如果有必要的话?) 不返回任何内容,而 grep "axb" \sdcard\test.txt 正如预期的那样 axbxc 同样,我们不应该这样做 (?>ax)b 是否也返回axbxc?(这是我想要应用的实

我正试图使用Android shell(带Busybox)编写一个脚本来扫描一些.xml文件以提取信息,但是,我在一些优化方面遇到了困难

不应该,比如

(ax)b
相配

axbxc
事实并非如此;当我尝试在Android上执行此操作时(4.2.2,Busybox 1.20.2,如果有必要的话?)

不返回任何内容,而

grep "axb" \sdcard\test.txt
正如预期的那样

axbxc
同样,我们不应该这样做

(?>ax)b
是否也返回axbxc?(这是我想要应用的实际优化。)


是什么导致了这个问题?另外,有人知道正则表达式引擎Busybox使用的是什么吗,这样我就可以专门阅读它了。

要在grep(以及Busybox grep)中启用扩展正则表达式,您需要使用
grep-E
egrep
egrep
grep-E
的快捷方式)

我已经用busybox grep测试了这一点,两种方法都按预期工作,并且与您的正则表达式匹配


至于
(?>ax)b
——只有当您可以使用
grep-p
(支持与Perl兼容的正则表达式)时,这才有效。但是,busybox grep不支持此切换,因此“向前看”和“向后看”匹配将不起作用。

。。。哦谢谢嗯,我现在觉得自己很傻。你知道什么是regex引擎Busybox吗?
(?>ax)b