您的位置:首页技术开发ASP教程 → 正则表达式简介(9-10)

正则表达式简介(9-10)

时间:2004/11/7 4:13:00来源:本站整理作者:蓝点我要评论(0)

9.非打印字符



有不少很有用的非打印字符,偶尔必须使用。下表显示了用来表示这些非打印字符的转义序列:



字符                       含义



\cx    匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。

        x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字

        符。



\f     匹配一个换页符。等价于 \x0c 和 \cL。



\n     匹配一个换行符。等价于 \x0a 和 \cJ。



\r     匹配一个回车符。等价于 \x0d 和 \cM。



\s    匹配任何空白字符,包括空格、制表符、换页符等等。等价于

       [\f\n\r\t\v]。



\S    匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。



\t    匹配一个制表符。等价于 \x09 和 \cI。



\v    匹配一个垂直制表符。等价于 \x0b 和 \cK。



<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>



10.字符匹配



句点 (.) 匹配一个字符串中任何单个的打印或非打印字符,除了换行符 (\n) 之外。下面的 Visual Basic Scripting

Edition 正则表达式可以匹配 'aac'、'abc'、'acc'、'adc'如此等等,同样也可以匹配 'a1c'、'a2c'、a-c'以及

a#c':



/a.c/



等价的 VBScript 正则表达式为:



"a.c"



如果试图匹配一个包含文件名的字符串,其中句点 (.) 是输入字符串的一部分,则可以在正则表达式中的句点前面加上一

个反斜杠 (\) 字符来实现这一要求。举例来说,下面的 Visual Basic Scripting Edition 正则表达式就能匹

配 'filename.ext':



/filename\.ext/



对 VBScript 而言,等价的表达式如下所示:



"filename\.ext"



这些表达式仍然是相当有限的。它们只允许匹配任何单字符。很多情况下,对从列表中匹配特殊字符十分有用。例如,如

果输入文字中包含用数字表示为Chapter 1, Chapter 2诸如此类的章节标题,你可能需要找到这些章节标题。





括号表达式



可以在一个方括号 ([ 和 ]) 中放入一个或多个单字符,来创建一个待匹配的列表。如果字符被放入括号中括起来,则该

列表称为括号表达式。括号内和其他任何地方一样,普通字符代表其本身,也就是说,它们匹配输入文字中出现的一处自

己。大多数特殊字符在位于括号表达式中时都将失去其含义。这里有一些例外:



1.  ']' 字符如果不是第一项,则将结束一个列表。要在列表中匹配 ']' 字符,请将其放在第一项,紧跟在开始的 '['

后面。



2.  '\' 仍然作为转义符。要匹配 '\' 字符,请使用 '\\'。



括号表达式中所包含的字符只匹配该括号表达式在正则表达式中所处位置的一个单字符。下面的 Visual Basic

Scripting Edition 正则表达式可以匹配 'Chapter 1'、'Chapter 2'、'Chapter 3'、'Chapter 4' 以及 'Chapter 5':



/Chapter ][12345]/



在 VBScript 中要匹配同样的章节标题,请使用下面的表达式:



"Chapter [12345]"



请注意单词 'Chapter' 及后面的空格与括号内的字符的位置关系是固定的。因此,括号表达式只用来指定满足紧跟在单

词 'Chapter' 和一个空格之后的单字符位置的字符集合。这里是第九个字符位置。



如果希望使用范围而不是字符本身来表示待匹配的字符,则可以使用连字符将该范围的开始和结束字符分开。每个字符的

字符值将决定其在一个范围内的相对顺序。下面的 Visual Basic Scripting Edition 正则表达式包含了一个等价于上面

所示的括号列表的范围表达式。



/Chapter [1-5]/



VBScipt 中相同功能的表达式如下所示:



"Chapter [1-5]"



如果以这种方式指定范围,则开始和结束值都包括在该范围内。有一点特别需要注意的是,在 Unicode 排序中起始值一定

要在结束值之前。



如果想在括号表达式中包括连字符,则必须使用下述方法之一:



1.  使用反斜杠将其转义: [\-]



2.  将连字符放在括号列表的开始和结束位置。下面的表达式能匹配所有的小写字母和连字符:[-a-z],[a-z-]



3.  创建一个范围,其中开始字符的值小于连字符,而结束字符的值等于或大于连字符。下面两个正则表达式都满足这一

要求: [!--],[!-~]



同样,通过在列表开始处放置一个插入符(^),就可以查找所有不在列表或范围中的字符。如果该插入符出现在列表的其他

位置,则匹配其本身,没有任何特殊含义。下面的 Visual Basic Scripting Edition 正则表达式匹配章节号大于 5 的章

节标题:



/Chapter [^12345]/



对 VBScript 则使用:



"Chapter [^12345]"



在上面所示的示例中,表达式将匹配第九个位置处除1, 2, 3, 4, or 5 之外的任何数字字符。因此, 'Chapter 7' 为一

个匹配,同样 'Chapter 9' 也是如此。



上面的表达式可以使用连字符 (-) 表示。对 Visual Basic Scripting Edition 为:



/Chapter [^1-5]/



或者,对 VBScript 为:



"Chapter [^1-5]"



括号表达式的典型用法是指定对任何大写或小写字母字符或任何数字的匹配。下面的 Visual Basic Scripting Edition

表达式给出了这一匹配:



/[A-Za-z0-9]/



等价的 VBScript 表达式为:



"[A-Za-z0-9]"








相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 《龙珠:超宇宙》 战斗E3 2014:瘆人僵尸《消 asp代码实现access数据导出到excel文件如何使用FSO读取Js文件内容并可以编辑修改对初学者有用的一些asp函数集学习ASP编程必会的代码

人气排行 asp代码实现access数据导出到excel文件asp不需要任何配置的伪静态实现如何使用FSO读取Js文件内容并可以编辑修改asp去除html标记和空格的代码Asp全选删除代码教大家网页伪静态知识及其2种实现方法Microsoft SQL Server 7.0安装问题(一)ASP.NET中的Code Behind技术4