正则表达式简介(微软)--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]"

时间: 2024-10-27 17:13:44

正则表达式简介(微软)--10.字符匹配的相关文章

VBS教程:正则表达式简介 -非打印字符_vbs

非打印字符 有不少很有用的非打印字符,偶尔必须使用.下表显示了用来表示这些非打印字符的转义序列: 字符 含义 \cx 匹配由x指明的控制字符.例如, \cM 匹配一个 Control-M 或回车符. x 的值必须为 A-Z 或 a-z 之一.否则,将 c 视为一个原义的 'c' 字符. \f 匹配一个换页符.等价于 \x0c 和 \cL. \n 匹配一个换行符.等价于 \x0a 和 \cJ. \r 匹配一个回车符.等价于 \x0d 和 \cM. \s 匹配任何空白字符,包括空格.制表符.换页符等

正则表达式简介

正则 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉.不过,它们并不是您想象的那么新奇. 请回想一下在硬盘上是如何查找文件的.您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件.? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符.一个如 'data?.dat' 的模式可以找到下述文件: data1.dat data2.dat datax.dat dataN.dat 如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量.'data*.dat' 可以匹配下述所有文

VBS教程:正则表达式简介 -字符匹配_vbs

字符匹配 句点 (.) 匹配一个字符串中任何单个的打印或非打印字符,除了换行符 (\n) 之外.下面的 Visual Basic Scripting Edition 正则表达式可以匹配 'aac'.'abc'.'acc'.'adc'如此等等,同样也可以匹配 'a1c'.'a2c'.a-c'以及 a#c': /a.c/ 等价的 VBScript 正则表达式为: "a.c" 如果试图匹配一个包含文件名的字符串,其中句点 (.) 是输入字符串的一部分,则可以在正则表达式中的句点前面加上一个反

正则表达式简介(微软)--1.正则表达式

微软|正则 正则表达式 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉.不过,它们并不是您想象的那么新奇. 请回想一下在硬盘上是如何查找文件的.您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件.? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符.一个如 'data?.dat' 的模式可以找到下述文件: data1.dat data2.dat datax.dat dataN.dat 如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量.'data*.dat'

正则表达式简介(微软)--4.正则表达式语法

微软|语法|正则 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 这里有一些可能会遇到的正则表达式示例: Visual Basic VBScript 匹配 Scripting Edition /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行. /\d{2}-\d{5}/ "\d{2}-

正则表达式简介(微软)--13.选择与编组

微软|正则 选择与编组 选择允许使用 '|' 字符来在两个或多个候选项中进行选择.通过扩展章节标题的正则表达式,可以将其扩充为不仅仅适用于章节标题的表达式.不过,这可没有想象的那么直接.在使用选择时,将匹配'|' 字符每边最可能的表达式.你可能认为下面的 Visual Basic Scripting Edition 和 VBScript 表达式将匹配位于一行的开始和结束位置且后跟一个或两个数字的 'Chapter' 或 'Section': /^Chapter|Section [1-9][0-9

go语言-正则表达式不让指定重复字符匹配,求高手解答

问题描述 正则表达式不让指定重复字符匹配,求高手解答 50C 正则表达式不让 指定字符串的 指定连续重复个数以上 通过比如:我指以数字组成定长度为10以内的字符串,指定不允许连续6个数字及以上通过1233444444 这个不让通过1433333332 这个不让通过1531224154 这个让通过4135353331 这个让通过要求:不用预查功能因为用的go语言,这种?! ?>= ?=影响效率语法不让通过服务器端写死的,只能用一个正则筛选.求高手解答. 解决方案 1{610}|2{610}|3{6

正则表达式教程之字符匹配

普通字符 普通字符由所有那些未显式指定为元字符的打印和非打印字符组成.这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号. 最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身.例如,单字符模式 'A' 可以匹配所搜索字符串中任何位置出现的字母 'A'.这里有一些单字符正则表达式模式的示例: /a/ /7/ /M/ 等价的 VBScript 单字符正则表达式为: "a" "7" "M" 可以将多个单字符组合在

《正则表达式经典实例(第2版)》——第 1 章 正则表达式简介 1.1正则表达式的定义

第 1 章 正则表达式简介 在你打开这本书的时候,很可能已经热切地期望,要在代码中插入本书中找到的那些包含诸多括号和问号的古怪字符串了.如果你已经准备好要"即查即用",我们非常欢迎,第4-9章中会列出并讲解了各种实用的正则表达式. 但是如果阅读本书的前几章,你将为未来节省大量的时间.例如,本章会向读者介绍许多工具-其中一些工具是本书作者之一的Jan所开发的,这些工具可以帮你事先测试和调试正则表达式,而不用等到把它们塞到代码中之后再处理,那时候查找错误就非常困难了.而且开始这几章还会展示