歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 正則表達式與greb

正則表達式與greb

日期:2017/3/1 10:09:04   编辑:Linux編程
基本正則表達式元字符:

. : 代表任意單個字符

示例: a.b : 表示acb/a*b/a b/a9b... 都可以但不能是accb/ab

[] : 指定范圍內的單個字符

示例: a[c|d]b : 表示acb/adb 其他的都不可以

[^ ] : 取反,非指定范圍內的單個字符

示例:a[^d]b : 表示除了adb 其他的acb/abb/a b...都可以

? : 重復前邊的字符0次或1

示例:a?b : 表示ab/aab 其他的都不可以

* : 重復前邊的字符無限次

示例:a* : 表示a/aa/aaa/aaaa... 可以重復a無限次

.* : 任意長度的任意字符

示例:a.* : 表示a/ac/acc/a,b ... 可以是a後邊跟任意字符

\{m,n\} : 重復前邊的字符至少m次,最多n

示例:a\{1,3\} : 表示 a/aa/aaa 可以重復a最少1次最多3次

\{m,\} : 重復前邊的字符至少m

示例:a\{2,\} : 表示aa/aaa/aaaa... 可以重復a最少2次最多不限

\{0,n\} : 重復前邊的字符最多n

示例:a\{0,3\} : 表示 空/a/aa/aaa 可以重復a最多3次也可以不重復也就是空

\{m\} : 重復前邊的字符精確匹配m

示例:a\{2\} : 表示 aa 精確匹配重復a2次

^ : 行首匹配,必須出現在行首

示例:^a : 表示所有以a開頭的行

$ : 行尾匹配,必須出現在行尾

示例:a$ :表示所有以a結尾的行

^$ : 空白行

\< : 詞首匹配,必須出現在詞首

示例:\<a : 表示a/acv/abcc... 所有以a開頭的單詞

\> : 詞尾匹配,必須出現在詞尾

示例:a\> : 表示a/cda/cca/... 所有以a結尾的單詞

\(\) : 分組字符,可用\1引用左數第一個(中包含的內容

示例: a\(abc\)\1 表示:aabcabc \1引用了()中的abc

[ :upper: ] : 單個任意大寫字母,注意[]與:之間有個空格,下同

示例:a[:upper:] 表示:aA/aB/aC... a後邊跟任意一個大些字母

[ :lower: ] : 單個任意小寫字母

[ :space: ] : 單個空白字符

[^[ :space: ]] : 單個非空白字符

[ :digit: ] : 單個任意數字0-9

示例:a[:digit:]b 表示: a0b/a1b/a2b... a和b中間跟任意一個0-9的數字

[ :alpha: ] : 單個任意字母

[ :alnum: ] : 單個任意字母或數字

[:punct:] : 單個任意特殊符號

擴展正則表達式元字符: 擴展正則表達式簡化了基本正則中的一個元字符,又增加了幾個。

\{m,n\} → {m,n} : 用法與基本正則中的一樣

示例:a{1,3} 表示: a/aa/aaa

\(\) → () : 用法與基本正則中的一樣

示例:(abc)\1 表示:abcabc

+ : 匹配前邊的字符一次或多次

示例:a+ 表示: a/aa/aaa/aaaa...

| : 或者

示例:(a|b)c 表示: ac/bc

Copyright © Linux教程網 All Rights Reserved