正規表示式就是處理字串的方法,並且是以行為單位進行字串處理的。通常在linux中,進行文字的"搜尋/替換"工作。正規表示式只是一種處理字串的標準表示方法,在linux中支援這種方法的工具有vi,sed,awk,grep等。
正規表示式的特殊字元:
regular expression字元 範例 含義
^(匹配行首) ^word 匹配以word開頭的行
$(匹配行尾) word$ 匹配以word結尾的行
\w 匹配字母或數字或下劃線或漢字
\s匹配任意的空白符
\d 匹配數字
\b 匹配單詞的開始或結束
.(匹配任意乙個字元) hel.o 匹配以hel開頭,o結尾的長度為5的字串
\(轉義字元) \. 匹配字元.
*(匹配任意多個前乙個字元) hello* 匹配hell,hello....hellooooo......
\(匹配n到m個前乙個字元) hello\ 匹配hello,helloo,hellooo。 特殊情況:\:匹配n個前乙個字元。\:匹配至少n個前乙個字元
(匹配字元集合中的乙個) [a-za-z] 匹配a-z或a-z中的乙個字元
[^](匹配不是字元集合中的乙個字元) [^a-za-z] 匹配不是a-z和a-z的乙個字元
另外有四個擴充套件的正規表示式特殊字元:
regular expression字元 範例 含義
+(匹配1個或以上個前乙個字元) hello+ 匹配hello,helloo....
?(匹配0個或1個前乙個字元) go?d 匹配gd或god
|(匹配數個字串中的乙個) god|good 匹配god或good
()(匹配使用者組,一般與|合用) re(a|o|e)d 匹配read或reed或reod
需要說明的是()會進入子shell,並且(!)在正規表示式中不是特殊字元。
以常用的正規表示式程式工具grep來說,其全稱是global search regular expression and print out the line,即全域性搜尋正規表示式並列印出行。
其格式如下:grep -[option] '搜尋字串' 檔名
引數說明如下:
-a 在二進位制檔案中以,文字檔案方式搜尋資料
-c 只輸出匹配的行的數量
-i 搜尋時忽略大小寫
-h 查詢多檔案時不顯示檔名
-l 只列出符合匹配的檔名,而不輸出匹配行
-n 顯示所有匹配行並列出行號
-s 不顯示不匹配或無匹配文字的錯誤資訊
-v 顯示不包含匹配檔案的所有行
-w 匹配整詞,忽略regular expression字元的特殊含義
-x 匹配整行,必須整行內容匹配
-r 遞迴搜尋,不僅搜尋該目錄,還搜尋子目錄
-q 不輸出任何結果,以退出狀態表示搜尋是否成功
-b 列印匹配行距檔案首部的偏移量,以位元組為單位
-o 與-b結合使用,列印匹配單詞距檔案首部的偏移量,也是以位元組為單位
-e 支援擴充套件正規表示式,等價於egrep
-f 不支援正規表示式,按字面意思進行匹配,等價於fgrep
待續......
這裡說明的挺詳細:
python筆記一(正規表示式)
1 usr bin env python2 coding utf 8 34 1 如果直接給出字元,則表示精確匹配5 2 d 表示數字,w 表示字母或數字,可以匹配任意字元,s 表示空白符,包括tab6 3 表示任意長度,表示至少乙個字元,表示0或1個字元,表示n個字元,表示n到m個字元7 如 d s...
mysql學習(一)正規表示式
mysql可以通過 like 來進行模糊匹配 mysql 同樣也支援其他正規表示式的匹配,mysql中使用 regexp 操作符來進行正規表示式匹配 模式描述 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。...
一 正規表示式基礎
正規表示式是一種用來匹配字串的強有力的 設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,就認為它 匹配 否則就不匹配。行定位符用來描述字串的邊界。表示行的開始,表示行的結束。例如 若要匹配以am開頭的字串,則是 am 若要匹配以am結尾的字串,則是am 其中 放在方括號裡,表示...