相信大家都知道見過正規表示式,但什麼是正規表示式嘞?正規表示式的分類:正規表示式就是用於描述一組字串特徵的模式,用來匹配特定的字串。通過 特殊字元+普通字元來進行模式描述,從而達到文字匹配目的工具。
正規表示式目前被整合到了各種文字編輯器/文字處理工具當
注:本文採用grep工具進行驗證(grep採用貪婪匹配,匹配當前行中所有的匹配內容)
grep -e: 使用擴充套件正則匹配
grep --color: 將匹配的到內容進行語法高亮
正規表示式的基本要素大致可以分為如下幾種:
一、字元類
(1). 匹配任意乙個字元
(2)[ ] 匹配括號中的任意乙個字元
(3)- 在[ ]括號內表示字元範圍
(4)^ 位於[ ]括號內的開頭,匹配除括號中的字元之外的任意乙個字元
(5)[ [ :***:] ] grep工具預定義的一些命名字元類
例如:[[:alpha:]]匹配乙個字母;[[:digit:]]匹配乙個數字
二、數量限定符
(1)? 緊跟在它前面的單元應匹配零次或一次
(2)+ 緊跟在它前面的單元應匹配一次或多次
(3)* 緊跟在它前面的單元應匹配零次或多次
(4) 緊跟在它前面的單元應精確匹配n次
(5) 緊跟在它前面的單元應匹配至少n次
(6) 緊跟在他前面的單元應匹配最多m次
(7) 緊跟在它前面的單元應匹配至少n次,最多m次
注意點:上述的「前面的單元」指的就是「?前面的字元」;具體可見下圖所示例子
三、 位置限定符
(1)^ 匹配行首的位置
(2)$ 匹配行末的位置
(3)\< 匹配單詞開頭的位置
(4)> 匹配單詞結尾的位置
(5)\b 匹配單詞開頭或結尾的位置
(6)\b 匹配非單詞開頭和結尾的位置
四、特殊字元
(1)\ 轉義字元,普通字元轉義為特殊字元,特殊字元轉義為普通字元
(2)( ) 將正規表示式的一部分括起來組成乙個單元,可以對整個單元使用數量限定符
(3)| 連線兩個子表示式,表示或的關係
五、其它常用通用字符集及其替換
注意點:這些符號可以來簡化正規表示式的填寫(恰當的使用)
六、小練習
(1)手機號碼
(2)非零的正整數
grep -p --color '^(\+)[1-9]\d*$|^[1-9]\d*$' file
grep -p --color '^\+?[1-9]*$' file
注意點:
grep 支援:bres、eres、pres 正規表示式
grep 指令後不跟任何引數,則表示要使用 」bres「
grep 指令後跟 」-e" 引數,則表示要使用 「eres「
grep 指令後跟 「-p" 引數,則表示要使用 「pres"
(3)非零開頭的最多帶兩位小數的數字
(4)由數字和26個英文本母組成的字串
grep -e --color
'^[0-9a-za-z]+$'
file
假設qq號最短5位,最長10位
(6)ip位址
grep -e --color '^[1-9][0-9]/.[0-9]$' file
grep -e --color '\d+\.\d+\.\d+\.\d+' file
感覺這個寫的不是很好,希望大神們能給出更好的方法,讓我這個菜鳥學習學習
grep -e --color '^1[35789][0-9]$|^[1-9][0-9]$' file
(8)賬號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線)
grep -e --color '^[a-za-z][0-9a-za-z_)]$' file
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...