快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

正则表达式简介(12)

12.定位符

到现在为止,所看到的示例都只考虑查找任何地方出现的章节标题。出现的任何一个字符串 \\\'Chapter\\\' 后跟一个空格和一
个数字可能是一个真正的章节标题,也可能是对其他章节的交叉引用。由于真正的章节标题总是出现在一行的开始,因此
需要设计一个方式只查找标题而不查找交叉引用。

定位符提供了这个功能。定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开
始或结尾处出现的正则表达式。下表包含了正则表达式及其含义的列表:

字符 描述

^ 匹配输入字符串的开始位置。假如设置了RegExp对象的 Multiline 属性,
^ 也匹配 \\\'n\\\' 或 \\\'r\\\' 之后的位置。

$ 匹配输入字符串的结束位置。假如设置了RegExp对象的 Multiline 属性,
$ 也匹配 \\\'n\\\' 或 \\\'r\\\' 之前的位置。

b 匹配一个单词边界,也就是指单词和空格间的位置。

B 匹配非单词边界。


不能对定位符使用限定符。因为在一个换行符或者单词边界的前面或后面不会有连续多个位置,因此诸如 \\\'^*\\\' 的表达式
是不答应的。

要匹配一行文字开始位置的文字,请在正则表达式的开始处使用 \\\'^\\\' 字符。不要把 \\\'^\\\' 的这个语法与其在括号表达式中
的语法弄混。它们的语法根本不同。

要匹配一行文字结束位置的文字,请在正则表达式的结束处使用 \\\'$\\\' 字符。

要在查找章节标题时使用定位符,下面的 Visual Basic Scripting Edition 正则表达式将匹配位于一行的开始处最多有
两个数字的章节标题:

/^Chapter [1-9][0-9]{0,1}/

VBScript 中一样功能的正则表达式如下:

"^Chapter [1-9][0-9]{0,1}"

一个真正的章节标题不仅出现在一行的开始,而且这一行中也仅有这一个内容,因此,它必然也位于一行的结束。下面的
表达式确保所指定的匹配只匹配章节而不会匹配交叉引用。它是通过创建一个只匹配一行文字的开始和结束位置的正则表
达式来实现的。

/^Chapter [1-9][0-9]{0,1}$/

对 VBScript 则使用:

"^Chapter [1-9][0-9]{0,1}$"

匹配单词边界有少许不同,但却给正则表达式增加了一个异常重要的功能。单词边界就是单词和空格之间的位置。非单词
边界就是其他任何位置。下面的 Visual Basic Scripting Edition 表达式将匹配单词 \\\'Chapter\\\' 的前三个字符,因为它
们出现在单词边界后:

/bCha/

对 VBScript 为:

"bCha"

这里 \\\'b\\\' 操作符的位置很要害。假如它位于要匹配的字符串的开始,则将查找位于单词开头处的匹配;假如它位于改字
符串的末尾,则查找位于单词结束处的匹配。例如,下面的表达式将匹配单词 \\\'Chapter\\\' 中的 \\\'ter\\\',因为它出现在单词
边界之前:

/terb/

以及

"terb"

下面的表达式将匹配 \\\'apt\\\',因为它位于 \\\'Chapter\\\' 中间,但不会匹配 \\\'aptitude\\\' 中的\\\'apt\\\':

/Bapt/

以及

"Bapt"

这是因为在单词 \\\'Chapter\\\' 中 \\\'apt\\\' 出现在非单词边界位置,而在单词 \\\'aptitude\\\' 中位于单词边界位置。非单词边界
操作符的位置不重要,因为匹配与一个单词的开头或结尾无关。
返回类别: 教程
上一教程: 实例演练ASP+XML编程
下一教程: 学习把握.NET的第一步

您可以阅读与"正则表达式简介(12)"相关的教程:
· 正则表达式简介(12)
· 正则表达式简介(9-10)
· 正则表达式简介(14)
· 正则表达式简介(13)
· 正则表达式简介(5-8)
    微笑服务 优质保证 索取样品