正規表示式

2021-08-21 06:48:13 字數 2820 閱讀 5410

相信大家都知道見過正規表示式,但什麼是正規表示式嘞?

正規表示式就是用於描述一組字串特徵的模式,用來匹配特定的字串。通過 特殊字元+普通字元來進行模式描述,從而達到文字匹配目的工具。

正規表示式目前被整合到了各種文字編輯器/文字處理工具當

正規表示式的分類:

注:本文採用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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...