1、正则表达式分类:编辑器
一、基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)函数
二、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)工具
三、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)post
2、Linux 中经常使用文本工具与正则表达式的关系:编码
常握 Linux 下几种经常使用文本工具的特色,对于咱们更好的使用正则表达式是颇有帮助的spa
- grep , egrep 正则表达式特色:
1)grep 支持:BREs、EREs、PREs 正则表达式设计
grep 指令后不跟任何参数,则表示要使用 ”BREs“ 对象
grep 指令后跟 ”-E" 参数,则表示要使用 “EREs“
grep 指令后跟 “-P" 参数,则表示要使用 “PREs"
2)egrep 支持:EREs、PREs 正则表达式
egrep 指令后不跟任何参数,则表示要使用 “EREs”
egrep 指令后跟 “-P" 参数,则表示要使用 “PREs"
3)grep 与 egrep 正则匹配文件,处理文件方法
a. grep 与 egrep 的处理对象:文本文件
b. grep 与 egrep 的处理过程:查找文本文件中是否含要查找的 “关键字”(关键字能够是正则表达式) ,若是含有要查找的 ”关健字“,那么默认返回该文本文件中包含该”关健字“的该行的内容,并在标准输出中显示出来,除非使用了“>" 重定向符号,
c. grep 与 egrep 在处理文本文件时,是按行处理的
- sed 正则表达式特色
1)sed 文本工具支持:BREs、EREs
sed 指令默认是使用"BREs"
sed 命令参数 “-r ” ,则表示要使用“EREs"
2)sed 功能与做用
a. sed 处理的对象:文本文件
b. sed 处理操做:对文本文件的内容进行 --- 查找、替换、删除、增长等操做
c. sed 在处理文本文件的时候,也是按行处理的
- Awk(gawk)正则表达式特色
1)Awk 文本工具支持:EREs
awk 指令默认是使用 “EREs"
2)Awk 文本工具处理文本的特色
a. awk 处理的对象:文本文件
b. awk 处理操做:主要是对列进行操做
3、正则表达式:
基本组成部分
元字符
4、经常使用的正则表达式匹配
一、非负整数:^\d+ 二、正整数:^[0-9]*[1-9][0-9]*$ 三、非正整数:^((-\d+)|(0+))$ 四、负整数:^-[0-9]*[1-9][0-9]*$五、整数:^-?\d+$ 六、非负浮点数:^\d+(\.\d+)?$ 七、正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)| ([0-9]*[1-9][0-9]*))$ 八、非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 九、负浮点数:^(-((正浮点数正则式)))$ 十、英文字符串:^[A-Za-z]+$ 十一、英文大写串:^[A-Z]+$ 十二、英文小写串:^[a-z]+$ 1三、英文字符数字串:^[A-Za-z0-9]+$ 1四、英数字加下划线串:^\w+$ 1五、E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 1六、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^& lt;>\"\"])*$ 1七、邮政编码:^[1-9]\d{5}$ 1八、中文:^[\u0391-\uFFE5]+$ 1九、电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9] \d{6,7}(\-\d{1,4})?$ 20、手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$ 2一、双字节字符(包括汉字在内):^\x00-\xff 2二、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数) 2三、匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/> 2四、匹配空行:\n[\s| ]*\r 2五、提取信息中的网络连接:(h|H)(r|R)(e|E)(f|F) *= *('|”)?(\w|\\|\/|\.)+('|”| *|>)? 2六、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 2七、提取信息中的图片连接:(s|S)(r|R)(c|C) *= *('|”)?(\w|\\|\/|\.)+('|”| *|>)? 2八、提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+) 2九、提取信息中的中国手机号码:(86)*0*13\d{9} 30、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} 3一、提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 3二、提取信息中的中国邮政编码:[1-9]{1}(\d+){5} 3三、提取信息中的浮点数(即小数):(-?\d*)\.?\d+ 3四、提取信息中的任何数字 :(-?\d*)(\.\d+)? 3五、IP:(\d+)\.(\d+)\.(\d+)\.(\d+) 3六、电话区号:/^0\d{2,3}$/ 3七、腾讯QQ号:^[1-9]*[1-9][0-9]*$ 3八、账号(字母开头,容许5-16字节,容许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 3九、中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$