正則表達式:處理字符串的方法,以行爲單位處理字符串,其通過一些特殊符號的輔助,可以使用戶輕易的進行查找、刪除、替換某特定字符串的處理程序。
支持正則表達式表示法的工具程序:grep、vi、awk、sed
正則表達式分類:1)基礎正則表達式;2)擴展正則表達式
而在學習正則表達式之前,首先學會工具程序grep的用法:
grep [-acinv] [--color=auto] '查找字符串' filename
參數:
-a:將binary文件以text文件的方式查找數據
-c:計算找到“查找字符串”的次數
-i:忽略大小寫
-n:輸出行號
-v:反向顯示
--color=auto:將找到的關鍵部分加上顏色顯示
正則表達式則是操作上述grep中“查找字符串”選項
以linux中regular_express.txt爲例
1)行首與行尾字符:標註以什麼開始,以什麼結束^和$
含義:找出以th開頭的行數,並使用grep的-i選項,忽略大小寫
含義:找出以"."結尾的行,其中.有特殊含義,需要用轉移字符\進行轉義
含義:找出空行
2)利用中括號[]查找集合字符
含義:查找包含goo或foo的行
含義:查找不包含小寫字母goo或foo的行,此處在[]中的符號^與行首標識符含義不同,此處含義爲“反向選擇”,在[]之外則代表定位在行首的意義
含義:查找包含任意數字的行
3)任意一個字符“.”與重複字符“*”
“.”:代表一定有一個任意字符的意思
“*”:代表重複前一個字符0-無窮多次的意思
含義:即找出包含g??d字符串,其中中間兩個點代表任意一個字符
含義:找出o出現0次或多次的行
含義:找出o出現0次或多次的行,但由於前面多出兩個o,所以匹配到的行o至少出現兩次
含義:gg之間出現任意字符一次,其中可以匹配任意字符
4)限定連續字符範圍:{n,m},其中{}需要進行轉義
含義:匹配出現2-5次O的行
含義:匹配出現>=2次O的行