游客:
注册
|
登录
|
帮助
网友俱乐部
»
网络编程
»
ASP教程
» 正则表达式简介(12)
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
传世私服
|
传奇世界私服
注册亚洲交友中心,找个人来同居吧!
7CODE查杀恶意代码,守护您的电脑
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: 正则表达式简介(12)
轻骑兵
中校
UID 90
精华
2
积分 1528
帖子 724
威望 19
金币 754
热心 0
阅读权限 50
注册 2005-9-15
状态 离线
#1
使用道具
发表于 2008-5-11 08:05
资料
个人空间
短消息
加为好友
正则表达式简介(12)
12.定位符
到现在为止,所看到的示例都只考虑查找任何地方出现的章节标题。出现的任何一个字符串 "Chapter" 后跟一个空格和一
个数字可能是一个真正的章节标题,也可能是对其他章节的交叉引用。由于真正的章节标题总是出现在一行的开始,因此
需要设计一个方法只查找标题而不查找交叉引用。
定位符提供了这个功能。定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开
始或结尾处出现的正则表达式。下表包含了正则表达式及其含义的列表:
字符 描述
^ 匹配输入字符串的开始位置。如果设置了RegExp对象的 Multiline 属性,
^ 也匹配 "
" 或 "
" 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp对象的 Multiline 属性,
$ 也匹配 "
" 或 "
" 之前的位置。
匹配一个单词边界,也就是指单词和空格间的位置。
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" 的前三个字符,因为它
们出现在单词边界后:
/Cha/
对 VBScript 为:
"Cha"
这里 "" 操作符的位置很关键。如果它位于要匹配的字符串的开始,则将查找位于单词开头处的匹配;如果它位于改字
符串的末尾,则查找位于单词结束处的匹配。例如,下面的表达式将匹配单词 "Chapter" 中的 "ter",因为它出现在单词
边界之前:
/ter/
以及
"ter"
下面的表达式将匹配 "apt",因为它位于 "Chapter" 中间,但不会匹配 "aptitude" 中的"apt":
/Bapt/
以及
"Bapt"
这是因为在单词 "Chapter" 中 "apt" 出现在非单词边界位置,而在单词 "aptitude" 中位于单词边界位置。非单词边界
操作符的位置不重要,因为匹配与一个单词的开头或结尾无关。
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-9-7 18:49
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP