新書推薦:

《
宁来一梦
》
售價:NT$
458.0

《
画魂 潘玉良传 潘玉良诞辰130周年精装纪念版
》
售價:NT$
398.0

《
好望角系列丛书·桅杆上的帝国:西班牙史
》
售價:NT$
1010.0

《
启微·清代中国的物价与经济波动
》
售價:NT$
500.0

《
九色鹿·渤海国政治制度研究
》
售價:NT$
504.0

《
宠物造型设计与修剪(王欣)
》
售價:NT$
286.0

《
酱卤食品加工
》
售價:NT$
301.0

《
他惯会装乖
》
售價:NT$
245.0
|
內容簡介: |
随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。本书是讲解正则表达式的经典之作。本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在perl、java、.net、php中的用法。
|
關於作者: |
作者:(美国)杰佛瑞E.F.佛瑞德(Jeffrey E.F.Friedl) 译者:余晟
|
目錄:
|
前言
第1章 正则表达式入门
第2章 入门示例拓展
第3章 正则表达式的特性和流派概览
第4章 表达式的匹配原理
第5章 正则表达式实用技巧
第6章 打造高效正则表达式
第7章 Perl
第8章 Java
第9章 .Net
第10章 PHP
索引
|
內容試閱:
|
一种类型的环视叫“顺序环视(lookahead)”,作为表达式的一部分,顺序环视顺序(从左至右)查看文本,尝试匹配子表达式,如果能够匹配,就返回匹配成功信息。肯定型顺序环视(positive
lookahread)用特殊的序列(?=…)来表示,例如(?=\d),它表示如果当前位置右边的字符是数字则匹配成功。另一种环视称为逆序环视,它逆序(从右向左)查看文本。它用特殊的序列(?<=…)表示,例如(?<=\d),如果当前位置的左边有一位数字,则匹配成功(也就是说,紧跟在数字后面的位置)。
环视不会“占用”字符
在理解顺序环视和其他环视功能时需要特别注意一点,即在检查子表达式能否匹配的过程中,它们本身不会“占用”任何文本。这可能有点难懂,所以我准备了下面的例子。正则表达式Jeffrey匹配:
但同样的正则表达式,如果使用顺序环视功能,即(?=Jeffrey),则匹配标记的位置:
顺序环视会检查子表达式能否匹配,但它只寻找能够匹配的位置,而不会真正“占用”这些字符。不过,把顺序环视和真正匹配字符的部分——例如Jeff——结合起来,我们能得到比单纯的Jeff更精确的结果。结合之后的正则表达式是(?=Jeffrey)Jeff,下一页的图说明,它只能匹配“Jeffrey”这个单词中的“Jeff”。它能够匹配:
在此处它的匹配和单纯的Jeff一样,但是下面的情况不会匹配:
Jeff自己能够匹配这一行,但是因为不存在(?=Jeffrey)能够匹配的位置,整个表达式就无法匹配。现在环视的好处还看得不是很明显,但是请不用担心,现在我们只需要关心顺序环视的原理——我们很快会遇到能够充分展现其价值的例子。
|
|