2016-03-04 51 views
1

我開始操作正則表達式,並希望知道我在這裏做錯了什麼。Grep和正則表達式,匹配一個詞,空格和雙數字

我的目的是在一個文件中進行搜索,等同於以下描述的匹配:

詞語「法分」可以後跟一個空格和兩個數字其範圍在0和9之間

當我這樣做:

grep -ic -e "lignes[[:blank:]][0-9][0-9]" exemples-grep.txt我得到的2場比賽。

許願考慮到有空間的概率還是不我加了?,也希望更好的因式分解它,我寫道:

grep -ic -e "lignes[[:blank:]]?[0-9]{2} exemples-grep.txt它顯示0匹配。

我的錯誤在哪裏?

+0

試'的grep -ic -e「法分[[:空白:]] {0,1} [0-9] {2} exemples-grep.txt' –

回答

3

您將需要轉義?,因爲在缺省基本正則表達式(BRE)?被匹配爲文字?。否則,您可以使用-E(擴展正則表達式)選項。

參見這些例子:

grep -ic "lignes[[:blank:]]?[0-9][0-9]" <<< 'lignes 12' 
0 

grep -ic "lignes[[:blank:]]\?[0-9][0-9]" <<< 'lignes 12' 
1 

grep -Eic "lignes[[:blank:]]?[0-9][0-9]" <<< 'lignes 12' 
1 
+1

這實際上工作:'grep -ic -e「ligne [[:blank:]] \?[0-9] \ {2 \}」exemples_grep.txt' – Aetos

相關問題