正則表達式元字符
元字符
|
功能
|
例子
|
匹配內容
|
^
|
行起始錨
|
/^love/
|
匹配所有以love開始的行
|
$
|
行結束錨
|
/love$/
|
匹配所有以love結束的行
|
.
|
匹配單字符
|
/l..e/
|
匹配行中包含l緊跟兩個字符然后是e的行
|
*
|
匹配0個或者多個前導字符
|
/ *love/
|
匹配0個或者多個空格,緊跟love
|
[ ]
|
匹配集合中的一個
|
/[Ll]ove/
|
匹配行中包含love 或者Love
|
[x–y]
|
匹配一個范圍集合中的一個字符
|
/[A–Z]ove/
|
匹配字符從A-Z緊跟著ove
|
[^ ]
|
匹配一個不在集合中的字符
|
/[^A–Z]/
|
匹配任意字符不在A 和Z之間
|
\
|
轉義一個元字符
|
/love\./
|
匹配包含love,緊跟著.
|
其他的元字符支持
|
\<
|
單詞開始錨
|
/\<love/
|
匹配行中含有單詞以love開始 (supported by vi and grep)
|
\>
|
單詞結束錨
|
/love\>/
|
匹配行包含單詞以love結束 (supported by vi and grep)
|
\(..\)
|
標簽匹配
|
/\(love\)able \1er/
|
可以使用到9個標簽, 起始部分是模式。例如, 模式love被保存為標簽1, 被后面引用為\1。在這個例子中,搜索模式包含lovable后緊跟lover (supported by sed, vi, and grep)
|
x\{m\} or
x\{m,\} or
x\{m,n\}
|
表示字母x出現m次
表示字母x出現至少m次
表示字母x至少出現m次,不超過n次
|
o\{5,10\}
|
如果一行中含有連續出現5-10次o字母 (supported by vi and grep)
|
例子3.1
/love/
模式love可以匹配自己和作為其他詞的一部分匹配,例如lovely,gloves和clover。
例子3.2
/^love/
起始錨,匹配只能匹配以love開始的詞。
例子3.3
/love$/
結束錨,匹配以love結束的詞。
例子3.4
/l.ve/
.只能匹配一個字符。
例子3.5
/o*ve/
*匹配0到多個字符,比如love, loooove, lve
例子3.6
/[Ll]ove/
匹配Love和love
例子3.7
/ove[a-z]/
[a-z]中的任何一個字符都可以匹配
例子3.8
/ove[^a-zA-Z0-9]/
匹配ove后跟的字符不在a-z,A-Z,0-9的字符
例子3.9
/^[A–Z]..$/
匹配起始為[A-Z]之間的字母,跟隨兩個任意字符,緊接著是一個新行。
/^[A–Z][a–z ]*3[0–5]/
匹配以大寫字母開始,跟著0個或者多個小寫字母或空格,跟隨著數字3和另外一個在0-5之間的數字。
/[a–z]*\ ./
匹配包含0個或多個小寫字母,跟著.
/^ *[A–Z][a–z][a–z]$/
匹配其實是0個或者多個空格(tab不能算作空格),跟著大寫字母,兩個小寫字母和一個新行。
/^[A–Za–z]*[^,][A–Za–z]*$/
匹配0個或多個大寫或小寫字母跟著非逗號,然后緊跟著0個或者多個大寫或小寫字母結束
例子3.10
/\<fourth\>/
在每行上查找fourth這個單詞,一個單詞可以被空格分隔,結束于標點符號,起始于一行,結束于一行等等。
例子3.11
/\<f.*th\>/
匹配單詞以f開始,跟著0個或者多個任意的字符,結束語th。
例子3.12
1,$s/\([0o]ccur\)ence/\1rence/
搜索整個字符串occurrence或者Occurrence

例子3.13
:s/\(square\) and \(fair\)/\2 and \1/
將會匹配fair and square。

例子3.14
/5\{2\}2\{3\}\./
匹配所有行中包含出現兩次數字5,跟著出現三次數字2,跟著.
posted on 2008-07-09 11:21
一葉笑天 閱讀(373)
評論(0) 編輯 收藏 所屬分類:
Shell技術