您的位置:首页 > 运维架构 > Linux

Linux下的正则表达式

2016-01-31 21:15 302 查看

Linux下的正则表达式

常用的正则表达式:

POSIX基本正则表达式

POSIX扩展正则表达式

正则表达式模式区分大小写。

正则表达式认可的特殊字符:. * [ ] ^ $ { } + ? | ( ) \,如果要使用这些特殊字符中的一个作为文本字符,需要转义(escape)它。(反斜杠和正斜杠在正则表达式模式中使用需要转义)

^定义从数据流中文本行开头开始。

$定义结尾定位。

^$结合在一起可以排除掉空行。

.点匹配除换行符外的任何单位字符,必须匹配一个字符。(空格作为字符记)

使用方括号定义为字符类。

在字符类范围开头添加脱字符(^)就可以使用否定字符类。

使用短画线符号可以在字符类中使用一系列字符范围。([0-9]);可以在单个字符类中指定多个非连续的范围:(a—ch-m)。

*匹配任意次。

?表示其前面的字符可以不出现或出现一次。

+表示其前面的字符可以出现一次或多次,但必须出现至少一次。

可以使用大括号指定对可重复的正则表达式的限制。这通常称为间隔(interval)。可以用两种格式表示间隔:(awk程序使用间隔时,必须使用–re-interval命令行选项。)

m:该正则表达式正好出现m次。

m,n:该正则表达式出现最少m次,最多n次。

管道符允许用逻辑or公式指定正则表达式检查数据流时使用的两个或多个模式。如果任何一个模式与数据流文本匹配,该文本通过。如果没有一个模式匹配,数据流文本失败。:
expr1|expr2...


$echo "The cat is asleep" | awk '/cat|dog/{print $0}'
The cat is asleep
$echo "The dog is asleep" | awk '/cat/dog/{print $0}'
The dog is asleep
$echo "The sheep is asleep" | awk '/cat|dog/{print $0}'
$


正则表达式模式也可以使用圆括号分组。

特殊字符类

描述
[[:alpha:]]匹配任意字母字符,大写或小写
[[:alnum:]]匹配任意字母数字字符,0-9,A-Z或a-z
[[:blank:]]匹配空格或者制表字符
[[:digit:]]匹配0-9之间的数字
[[:lower:]]匹配任意小写字母
[[:print:]]匹配任意可打印字符
[[:punct:]]匹配任意空白字符
[[:space:]]匹配任意空白字符
[[:upper:]]匹配任意大写字母字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息