正则表达式一:从宏观上认识正则表达式

正则表达式可以算是文本编辑处理中的灵魂,通过对网络资源的整理学习,本人把相关笔记做了一个系统的梳理,也算是对正则表达式学习的总结吧。关于正则表达式总共分3篇文章整理,来源于对网络资源学习记录的笔记和个人的思考总结,既是为了方便自己需要时查阅也是为了和大家相互交流学习。对于文章中涉及到的网络资源如需要明确注明出处的请联系本人修改添加。

一、从宏观上认识正则表达式

正则表达式,又称规则表达式,通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。正则表达式概念源于Unix中的sed、grep等文本编辑软件。在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。Perl、Python、vc++、Java及vim等程序设计语言和文本编辑工具都支持用正则表达式进行字符串操作。掌握正则表达式对于Linux系统下使用文本编辑工具进行文本相关操作是非常高效便利的。
1、正则表达式的构成
正则表达式由两种基本字符类型组成:普通文本字符和元字符。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,在第二篇正则表达式元字符中会详细介绍。
在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹配"testing"和"testing123"等字符串,但是不能匹配"Testing"。
2、正则的分类
当前普遍将正则表达式分成三类:
1)基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)
2)扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)
3)Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)
3、基本正则与扩展正则的区别
对于上述三种正则的区别此处只讲基本正则与扩展正则的区别,这两者基本对于sed、grep、AWK等Linux主流文本处理工具都支持,也是广泛通用的。Perl正则将单独写一篇总结。
这一小节可能先了解一下正则表达式的元字符相关概念能更好理解区别;可以先大致浏览一下“正则表达式二:正则表达式元字符”。
基本正则与扩展正则在使用时主要有以下两个区别,或说是注意事项:
1)元字符类型区别
在BRE方式中,只承认^ 、$、 . 、[ 、] 、*这些是元字符,所有其他的字符都被识别为文字字符;
在ERE中除了能直接识别BRE中的元字符外,还添加了(、 ) 、{ 、} 、?、 +、 |、等元字符;
2)元字符处理区别
在BRE中,除了承认的元字符可以直接使用外,对于ERE中添加的其他元字符都需要通过反斜杠“\”转义;
在ERE中,直接使用元字符,任何元符号前面加上反斜杠将被当作文字字符来处理;
4、不同语言、工具对正则表达式元字符语法支持情况
百科上统计各种语言、工具对元字符支持情况
正则表达式一:从宏观上认识正则表达式
从宏观上个人觉得掌握这么些概念就够了,其中第3点“基本正则和扩展正则的区别“”理解清楚最重要。

上一篇:接收 Perl 语言中如何使用 Socket 服务。FERWG个人和人


下一篇:mysql-如何禁用Apache :: DBI中的ping?