2010-02-15 177 views
0

我有兩個快速的問題與正則表達式與grep。grep與正則表達式

  1. \?是什麼意思?我沒有找到問號的解釋(?

  2. 我該如何實現or?例如,電話號碼XXX-XXX-XXXX,但第一部分可能是(XXX)

例如,可能有兩個字母,如a1bab之間的數字或不是如何做那?

謝謝!

回答

3

?在正則表達式中有特殊含義。如果你想匹配一個問號,你需要逃避它 - \?

如果你想爲一個字符串都與一個匹配沒有一個特定部分,則使用問號 - /^a1?b$/將匹配aba1b

+3

在grep中,它是另一種方式:round:'?'匹配問號,'\?'是零或一個量詞。除非你使用'-E'選項,那就是。 –

0
grep ".*a1\?b.*" files 
+0

在gnu grep中,'*'字符不需要反斜槓來作爲一個量詞,但是'''可以。然而,兩端的'。*'是多餘的,因爲grep總是返回找到匹配的整個行。 –

+0

你說得對,我的錯。 – siposa