1. 程式人生 > >正則表達式(1)

正則表達式(1)

表達式

正則表達式是計算機科學中的一個重要概念。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器中,正則表達式通常被用來檢索、替換符合某個模式的文本。許多程序設計語言都支持利用正則表達式進行字符串操作。(grep、sed、awk)

為什麽要學習正則表達式?

在工作中,我們做Linux運維工作,時刻面對著大量的日誌、程序、命令的輸出。迫切的需要過濾我們需要的一部分內容,甚至是一個字符串。


一、grep(grep全稱Global Regular Print)

1、作用

Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。grep,表示全局正則表達式版本,它的權限是所有用戶。

2、格式

grep [選項] 正則表達式 [文件]

3、常用選項

-c 只輸出匹配行的計數;

-i 不區分大小寫(只適用於單字符);

-h 查詢多文件時不顯示文件名;

-l 查詢多文件時只輸出包含匹配字符的文件名;

-L 只顯示不包含匹配模板的行的文件名清單;

-n 顯示匹配行及行號;

-s 不顯示不存在或無匹配文本的錯誤信息;

-n 在每一行前面打印改行在文件中的行數;

-v 顯示不包含匹配文本的所有行;

-w 只顯示完整單詞的匹配;

-x 只顯示完整行的匹配;

-r/-R如果文件參數是目錄 ,該選項將搜做該目錄下的所有子目錄和文件。

4、元素符號集

grep* (過濾)

過濾一般都是用"" ‘‘ 引號引起來

^lucky 表示搜索以lucky開頭的內容;

lucky$ 表示搜索以lucky結尾的內容;

^$ 表示空行,不是空格;(起排除空行作用)

. 代表且只能代表任意一個字符;(當前目錄,加載文件)

\ 轉義字符,讓有著特殊身份意義的字符,脫掉馬甲,還原原形 例如:\.只表示小數點,還原原始小數點的意義;

* 重復0個或者多個前面一個字符。不代表所有了。

.* 匹配所有的字符;

^* 任意多個字符開頭;

[abc] 匹配suoyou的字符合內任意一個字符[a-z]

[^adc] ^再中括號裏表示非,不包括a或b或c;

{n,m} 重復n到m次,前一個字符;

{n, } 重復至少次,多了不限;

{n} n次;

{0,m} 至多m次,少了不限。

擴展:egrep作用是在文件中查找指定的字符串。egrep執行效果如grep -E,使用語法及參數可參照grep指令,egrep與grep不同點解讀字符串的方法。

本文出自 “lucky” 博客,請務必保留此出處http://10433221.blog.51cto.com/10423221/1922732

正則表達式(1)