shell正規表示式字元含義

2021-06-03 17:34:52 字數 2931 閱讀 9928

1. 字元類

字元含義

舉例.匹配任意乙個字元

abc.可以匹配abcdabc9

匹配括號中的任意乙個字元

[abc]d可以匹配adbdcd

-括號內表示字元範圍

[0-9a-fa-f]可以匹配一位十六進製制數字

^位於括號內的開頭,匹配除括號中的字元之外的任意乙個字元

[^xy]匹配除xy之外的任一字元,因此[^xy]1可以匹配a1b1但不匹配x1y1

[[:***:]]grep工具預定義的一些命名字元類

[[:alpha:]]匹配乙個字母,[[:digit:]]匹配乙個數字

2. 數量限定符

字元含義

舉例?緊跟在它前面的單元應匹配零次或一次

[0-9]?\.[0-9]匹配0.02.3.5等,由於.在正規表示式中是乙個特殊字元,所以需要用\轉義一下,取字面值

+緊跟在它前面的單元應匹配一次或多次

[a-za-z0-9_.-]+@[a-za-z0-9_.-]+\.[a-za-z0-9_.-]+匹配email位址

*緊跟在它前面的單元應匹配零次或多次

[0-9][0-9]*匹配至少一位數字,等價於[0-9]+[a-za-z_]+[a-za-z_0-9]*匹配c語言的識別符號

緊跟在它前面的單元應精確匹配n次[1-9][0-9]匹配從100999的整數

緊跟在它前面的單元應匹配至少n

[1-9][0-9]匹配三位以上(含三位)的整數

緊跟在它前面的單元應匹配最多m

[0-9]相當於[0-9]?

緊跟在它前面的單元應匹配至少n次,最多m

[0-9]\.[0-9]\.[0-9]\.[0-9]匹配ip位址

3. 位置限定符字元

含義舉例

^匹配行首的位置

^content匹配位於一行開頭的content

$匹配行末的位置

;$匹配位於一行結尾的;號,^$匹配空行

\<匹配單詞開頭的位置

\

\>匹配單詞結尾的位置

p\>匹配leap ...,但不匹配parentsleepy

\b匹配單詞開頭或結尾的位置

\bat\b匹配... at ...,但不匹配catatexitbatch

\b匹配非單詞開頭和結尾的位置

\bat\b匹配battery,但不匹配... attendhat ...

4. 其它特殊字元字元

含義舉例

\轉義字元,普通字元轉義為特殊字元,特殊字元轉義為普通字元

普通字元<寫成\<表示單詞開頭的位置,特殊字元.寫成\.以及\寫成\\就當作普通字元來匹配

()將正規表示式的一部分括起來組成乙個單元,可以對整個單元使用數量限定符

([0-9]\.)[0-9]匹配ip位址

|連線兩個子表示式,表示或的關係

n(o|either)匹配noneither

以上介紹的是grep正規表示式的extended規範,basic規範也有這些語法,只是字元?+{}|()應解釋為普通字元,要表示上述特殊含義則需要加\轉義。如果用grep而不是egrep,並且不加-e引數,則應該遵照basic規範來寫正規表示式。

正規表示式匹配字元含義

正規表示式有多種不同的風格。下表是在pcre中元字元及其在正規表示式上下文中的行為的乙個完整列表 字元 描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了r...

正規表示式 基礎 元字元含義

元字元 b 單詞的開頭或結尾,只匹配乙個位置,不匹配分隔標點符號和空格 bhello b d 乙個數字,等價於 0 9 0 d d d 固定 數量,它前面的內容以連續使用的任意次數以達到整個表示式匹配,可以是0次匹配 和 類似,但至少匹配1次,匹配乙個或多個 d 和上面兩個類似,重複0次或一次 匹配...

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...