0
我試圖做這樣的事情在我的OSX終端這是爲什麼grep的組失敗
> grep -i "((\D*)ful)" ./Myfile.rtf
然而,上述語句失敗當我做這個
> grep -i "\D*ful" ./Myfile.rtf
它傳遞 - 確實grep的有正則表達式組的問題
我試圖做這樣的事情在我的OSX終端這是爲什麼grep的組失敗
> grep -i "((\D*)ful)" ./Myfile.rtf
然而,上述語句失敗當我做這個
> grep -i "\D*ful" ./Myfile.rtf
它傳遞 - 確實grep的有正則表達式組的問題
由於基本grep使用BRE,因此您需要使用\(..\)
來捕獲組。
grep -i "\(\(\D*\)ful\)" ./Myfile.rtf
發生此類事情時最可能發生的問題是特殊字符是否特殊。在這種情況下,我認爲括號並不特殊,除非你引用它們,所以:
> grep -i "\(\(\D*\)ful\)" ./Myfile.rtf
可能會更好。
[正則表達式的一個刺激是已經發展到它們如何被寫入的變化...]