1. 字元類
字元含義
舉例.
匹配任意乙個字元
abc.
可以匹配abcd
、abc9
等
匹配括號中的任意乙個字元
[abc]d
可以匹配ad
、bd
或cd
-
在括號內表示字元範圍
[0-9a-fa-f]
可以匹配一位十六進製制數字
^
位於括號內的開頭,匹配除括號中的字元之外的任意乙個字元
[^xy]
匹配除xy
之外的任一字元,因此[^xy]1
可以匹配a1
、b1
但不匹配x1
、y1
[[:***:]]
grep
工具預定義的一些命名字元類
[[:alpha:]]
匹配乙個字母,[[:digit:]]
匹配乙個數字
2. 數量限定符
字元含義
舉例?
緊跟在它前面的單元應匹配零次或一次
[0-9]?\.[0-9]
匹配0.0
、2.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]
匹配從100
到999
的整數
緊跟在它前面的單元應匹配至少
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 ...
,但不匹配parent
、sleepy
\b
匹配單詞開頭或結尾的位置
\bat\b
匹配... at ...
,但不匹配cat
、atexit
、batch
\b
匹配非單詞開頭和結尾的位置
\bat\b
匹配battery
,但不匹配... attend
、hat ...
4. 其它特殊字元字元
含義舉例
\
轉義字元,普通字元轉義為特殊字元,特殊字元轉義為普通字元
普通字元<
寫成\<
表示單詞開頭的位置,特殊字元.
寫成\.
以及\
寫成\\
就當作普通字元來匹配
()
將正規表示式的一部分括起來組成乙個單元,可以對整個單元使用數量限定符
([0-9]\.)[0-9]
匹配ip位址
|
連線兩個子表示式,表示或的關係
n(o|either)
匹配no
或neither
以上介紹的是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 ...