Linux正則表達式

Linux正則表達式


基本通配符

正則表達式

描述

示例

\

轉義符,將特殊字符進行轉義,忽略其特殊意義

a\.b匹配a.b,但不能匹配ajb.被轉義爲特殊意義

^

匹配行首,awk中,^則是匹配字符串的開始

^tux匹配以tux開頭的行

$

匹配行尾,awk中,$則是匹配字符串的結尾

tux$匹配以tux結尾的行

.

匹配除換行符\n之外的任意單個字符,awk則中可以

ab.匹配abcbad,不可匹配abcdabde,只能匹配單字符

[ ]

匹配包含在[字符]之中的任意一個字符

coo[kl]可以匹配cookcool

[^ ]

匹配[^字符]之外的任意一個字符

123[^45]不可以匹配1234123512361237都可以

[ - ]

匹配[]中指定範圍內的任意一個字符,要寫成遞增

[0-9]可以匹配123等其中任意一個數字

?

匹配之前的項1次或者0

colou?r可以匹配color或者colour,不能匹配colouur

+

匹配之前的項1次或者多次

sa-6+匹配sa-6sa-666,不能匹配sa-

*

匹配之前的項0次或者多次

co*l匹配clcolcoolcoool

()

匹配表達式,創建一個用於匹配的子串

ma(tri)?匹配maxmaxtrix

{ n }

匹配之前的項n次,n是可以爲0的正整數

[0-9]{3}匹配任意一個三位數,可以擴展爲[0-9][0-9][0-9]

{n,}

之前的項至少需要匹配n

[0-9]{2,}匹配任意一個兩位數或更多位數

{n,m}

指定之前的項至少匹配n次,最多匹配m次,n<=m

[0-9]{2,5}匹配從兩位數到五位數之間的任意一個數字

|

交替匹配|兩邊的任意一項

ab(c|d)匹配abcabd

POSIX字符類

POSIX字符類是一個形如[:...:]的特殊元序列(meta sequence),他可以用於匹配特定的字符範圍。

正則表達式

描述

示例

[:alnum:]

匹配任意一個字母或數字字符

[[:alnum:]]+

[:alpha:]

匹配任意一個字母字符(包括大小寫字母)

[[:alpha:]]{4}

[:blank:]

空格與製表符(橫向和縱向)

[[:blank:]]*

[:digit:]

匹配任意一個數字字符

[[:digit:]]?

[:lower:]

匹配小寫字母

[[:lower:]]{5,}

[:upper:]

匹配大寫字母

([[:upper:]]+)?

[:punct:]

匹配標點符號

[[:punct:]]

[:space:]

匹配一個包括換行符、回車等在內的所有空白符

[[:space:]]+

[:graph:]

匹配任何一個可以看得見的且可以打印的字符

[[:graph:]]

[:xdigit:]

任何一個十六進制數(即:0-9a-fA-F

[[:xdigit:]]+

[:cntrl:]

任何一個控制字符(ASCII字符集中的前32個字符)

[[:cntrl:]]

[:print:]

任何一個可以打印的字符

[[:print:]]

 

元字符

元字符(meta character)是一種Perl風格的正則表達式,只有一部分文本處理工具支持它,並不是所有的文本處理工具都支持。

正則表達式

描述

示例

\b

單詞邊界

\bcool\b 匹配cool,不匹配coolant

\B

非單詞邊界

cool\B 匹配coolant,不匹配cool

\d

單個數字字符

b\db 匹配b2b,不匹配bcb

\D

單個非數字字符

b\Db 匹配bcb,不匹配b2b

\w

單個單詞字符(字母、數字與_

\w 匹配1a,不匹配&

\W

單個非單詞字符

\W 匹配&,不匹配1a

\n

換行符

\n 匹配一個新行

\s

單個空白字符

x\sx 匹配x x,不匹配xx

\S

單個非空白字符

x\S\x 匹配xkx,不匹配xx

\r

回車

\r 匹配回車

\t

橫向製表符

\t 匹配一個橫向製表符

\v

垂直製表符

\v 匹配一個垂直製表符

\f

換頁符

\f 匹配一個換頁符


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章