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 匹配一个换页符

相关文章
相关标签/搜索