您的位置:首页 > 其它

正则表达式学习指南(二)----教程目录

2012-01-17 11:29 316 查看
正则表达式教程目录

这篇正则表达式教程将教授你关于正则表达式方方面面的知识.每一个主题都假设你已经读过并理解前面的主题内容.所以,如果你刚接触正则表达式,我推荐你按顺序阅读这些文章.

入门简介

入门简介指出了本教程涵盖的范围,和我们将要讨论的正则的流派.同时也介绍了一些基本的术语.

字面字符和元字符

最简单的正则表达式仅仅由字面字符组成.一些字符在正则中具有特殊意义,我们需要单独对其进行讨论.当在程序中使用这些特殊字符时会有一点复杂.如何输入不可打印的字符.

正则引擎内部是如何工作的

首先会介绍正则的内部工作原理.后面的议题都会建立在这一基础之上.明白正则引擎的内部原理将极大的帮助你创建你所需要的正则表达式.

字符类或字符集(Character Classes or Character Sets)

一个字符类或者字符集,匹配多个可能值中的一个字符,由指定的字符或者字符的范围组成.一个否定字符集匹配不在此字符集中的字符.元字符,可以使你很快的使用共同的字符集.

点号(The Dot)

点号可以匹配任意字符,虽然一般情况下不匹配换行符,但是你可以通过改变选项来实现它.

字符串的开始锚点和结束锚点

锚点是没有长度的.他们不匹配任何字符,仅仅只是一个位置."^"和"$"符号分别匹配字符串的开始和结束.按照你使用的正则流派和正则选项的不同,他们也可以匹配一行的开始或者结束.

单词边界

单词的边界就像锚点一样,但匹配的是一个单词的开始和一个单词的结束位置.然而,大多数正则流派里的"单词边界",和你的英语老师在学校里教授你的并是相同的含义.

分枝条件

通过使用"|"符号分割正则成多个子表达式,你可以使引擎从左至右的匹配这些正则,一旦匹配成功就立即返回.

可选单元

在一个正则单元后面放置一个问号,这样,正则引擎就会试着去匹配这段内容,但是如果不匹配,引擎也会继续下面的内容,而不是结束整个匹配过程.

使用不同的字符进行重复匹配

三种风格的操作符,星号(*),加号(+)和花括号({}),允许你匹配一个单元零次或者多次,一次以上,或者一个任意的次数.需要指出的是,除非你特别明确地指定"非贪婪"模式,这些字符默认都是在"贪婪"模式下执行的.

分组捕获和后向引用

通过在一部分正则外面加上圆括号,你可以让引擎把这部分当做一个独立的单元对待,特别是使用像数字这样的量词的时候.使用圆括号,你也可以建立后向引用,他可以使你重用被前面的正则所捕获的文本,或者在稍后的替换文本操作中,作为一个替换单元.在提取特定字符串的时候后向引用也非常有用.

Unicode字符和性能

如果你所使用的正则,其流派支持Unicode字符,那么你就可以使用特定的Unicode正则去匹配特定Unicode字符的.或者匹配任意的,具有特定的Unicode属性的,或特定区域内的Unicode字符.

模式修饰符

改变特定部分的正则匹配模式,使其使用类似"不区分大小写"的选项.

原子组和占有量词

嵌套的数量词可能导致回溯以指数的方式进行增长,由此会导致正则引擎的崩溃.原子组和占有量词提供了一种方案很好的解决了这种问题.

零宽断言,第一和第二部分

正预测先行断言和正回顾后发断言(统称为断言)都是没有长度的.零宽断言,在相同的断言位置,你可以应用子正则来进行匹配.使用负向零宽断言,你可以匹配不符合正则的结果.(匹配 不是 正则所匹配的内容)

从前一次匹配的结果中继续匹配

强制正则表达式匹配的上一个匹配的末尾开始提供解析文本数据的有效方法。

使用条件来结合先行断言和后发断言

条件是一个特殊的结构,他首先进行一次断言,如果与给定的正则匹配则执行一段正则,如果匹配失败,则执行另外一段断言.

XML类型

XML结构正则支持四个字的缩写去匹配XML的名字.同时介绍了一个容易实现的"字符类减"功能,这个功能现在在JGsoft和.Net的正则引擎中都已经实现了.

POSIX支架表达式

如果你正在使用POSIX-compliant正则引擎,你可以使用POSIX支架表达式去匹配那些依赖区域设置的字符.

添加注释

一些正则流派允许你添加注释,使得正则更加容易理解.

Free-Spacing模式

把一个正则表达式拆分为多行,添加注释和空格,使其更加容易阅读.

created 20120117

edit 20120117

count +1

author wushuai1346
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: