为什么这个grep组失败了

时间:2015-03-19 01:52:18

标签: macos bash grep

我想在我的OSX终端上做这样的事情

> grep -i "((\D*)ful)" ./Myfile.rtf 

但是当我这样做时,上述陈述失败了

> grep -i "\D*ful" ./Myfile.rtf 

它通过 - grep与正则表达式组有问题

2 个答案:

答案 0 :(得分:2)

由于基本grep使用BRE,因此您需要使用\(..\)来捕获组。

grep -i "\(\(\D*\)ful\)" ./Myfile.rtf 

答案 1 :(得分:2)

发生这种事情时最可能出现的问题是特殊字符是特殊字符还是非特殊字符。在这种情况下,我认为括号不是特殊的,除非你引用它们,所以:

> grep -i "\(\(\D*\)ful\)" ./Myfile.rtf

可能会更好。

[正则表达式的一个烦恼就是它们的编写方式已经发生变化......]