正则表达式

      正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在不少文本编辑器或其余工具里,正则表达式一般被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操做。正则表达式

说明:只有掌握了正则表达式,才能全面地掌握 Linux 下的经常使用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法。网络

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]+$

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息