第20章 正则表达式

来源:互联网 发布:张恩民 php 编辑:程序博客网 时间:2024/05/01 15:13

20.1 什么是正则表达式

20.1.1 定义

20.1.2 正则表达式的类型
在Linxu中,两种流行的正则表达式引擎:
*POSIX基础正则表达式(BRE)引擎
*POSIX扩展正则表达式(ERE)引擎

20.2 定义BRE模式

20.2.1 纯文本
这里写图片描述

20.2.2 特殊字符
. * [ ] ^ { } \ + ? | ( )

这里写图片描述
特殊字符加上反斜杠进行转义

20.2.3 锚字符
1 锁定在行首
脱字符(^)定义从数据流中文本行的行首开始的模式
这里写图片描述

2 锁定在行尾
美元符($)定义了行尾锚点。
这里写图片描述
3 组合锚点
可以将两个锚点直接组合在一起,之间不加任何文本,这样过滤出数据流中的空白行。

20.2.4 点号字符
用来匹配除换行符之外的任意单个字符。
这里写图片描述

20.2.5 字符组
这里写图片描述

20.2.6 排除型字符组
这里写图片描述

20.2.7 区间
这里写图片描述

20.2.8 特殊的字符组
这里写图片描述

20.2.9 星号
在字符后面放置星号表明该字符必须在匹配模式的文本中出现0次或多次。
这里写图片描述

20.3 扩展正则表达式
gawk程序能够识别ERE模式,但sed编辑器不能。

20.3.1 问号
问号表明前面的字符可以出现0次或1次。
这里写图片描述

20.3.2 加号
加号表明前面的字符可以出现1次或多次

20.3.3 使用花括号
花括号允许你为可重复的正则表达式指定一个上限。称为间隔,可以用两种格式来指定区间:
*m:正则表达式准确出现m次
*m,n:正则表达式至少出现m次,至多n次。
这里写图片描述

20.3.4 管道符号
用逻辑OR方式指定正则表达式引擎要用的两个或多个模式。
使用管道符号的格式如下:
expr1|expr2|…
这里写图片描述

20.3.5 表达式分组
可以圆括号进行分组,分组会被视为一个标准字符。
这里写图片描述

20.4 正则表达式实战

20.4.1 目录文件计数
这里写图片描述

20.4.2 验证电话号码
这里写图片描述

20.4.3 解析邮件地址
这里写图片描述

20.5 小结

0 0
原创粉丝点击