Linux基礎正則表達式

轉載於http://aresxin.blog.51cto.com/4734097/1602624
git



基本組成部分正則表達式

正則表達式的基本組成部分。ide

正則表達式工具

描述spa

示例blog

\ci

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

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

^it

匹配行首,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 匹配一個換頁符

相關文章
相關標籤/搜索