正則表達式元字符
元字符 |
功能 |
例子 |
匹配內容 |
^ |
/^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,跟著.