正則表達式(7):正則表達式(5):轉義符
本博文轉載自
此處,我們來認識一個常用符號,它就是反斜杠 “\”
反斜杠有什么作用呢?先不著急解釋,先來看個小例子。
前文中說過,在正則表達式中,”.”代表任意單個字符(如果不明白請回顧前文),比如,可以使用”a…”表示字母a后面跟隨了兩個任意字符,如下。
正如上圖所示,只要字母a后面跟隨了兩個字符,即可被匹配到,無論后面跟隨的兩個字符是什么,數字、符號、字母均可。
但是,我現在的要求變了, 我只想找出文本中 “以a開頭,后面跟隨了兩個’點’的文本” ,換句話說就是,我想要匹配到上圖中文本文件中的第6行。
那么,我該怎么辦呢?
理論上來說,我想要找出”a點點”,應該使用如下命令
但是正如之前的示例一樣,”.”在正則表達式中代表任意單個字符,所以,”.”在正則表達式中,并不能表示”點”本身。
可是,我們現在的需求就是匹配”點”本身,并不希望”.”代表其他字符,我只希望”.”就代表”點”。
這個時候,就需要用到反斜杠”\”
“\”與正則中的符號結合在一起時,就表示這個符號本身的含義,示例如下
如上圖所示,”\.”就表示單個”點”,我們稱反斜杠”\”為轉義字符。
同理,如果我們想要匹配””本身,而不是想要使用””表示任意次數,我們可以使用”*”,示例如下。
前文中提到過,在基本正則表達式中,”\?”表示其前面的字符出現0次或1次,那么,如果我們想要匹配問號本身,我們應該怎么做呢?
“\?”就已經包含反斜杠了,難道我們要再加一個反斜杠,嘻嘻~不要陷入思維怪圈了,在基本正則表達式中,如果想要匹配問號本身,只需要使用”?”即可,示例如下
加號同理,基本正則中,使用”+”表示匹配前面的字符至少1次,當我們想要匹配加號本身時,直接使用”+”就行了,示例如下
在某些時候,我們就是想要匹配反斜杠本身,我們該怎么辦呢?沒錯,在反斜杠前面加上反斜杠就行了,示例如下。
細心如你一定發現了,上例中使用了單引號,而之前的示例中都使用雙引號。
此處如果使用雙引號將 正則”引起”,將會報錯,示例如下
如果需要用 “” (雙引號) 匹配單個斜桿該怎么辦呢?
答案是
grep "\\\\" file
好了,關于轉義符反斜杠就總結到這里,希望能夠對你有所幫助。