




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、正则表达式语法· Visual Studio 2008· Visual Studio 2005“正则表达式”描述在搜索文本正文时要匹配的一个或多个字符串。该表达式可用作一个将字符模式与要搜索的字符串相匹配的模板。正则表达式包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。特殊字符下表包含了单字符元字符的列表以及它们在正则表达式中的行为。注意若要匹配这些特殊字符之一,必须首先转义字符,即,在字符前面加反斜杠字符 ()。例如,若要搜索“+”文本字符,可使用表达式“+”。元字符行为示例*零次或多次匹配前面的字符或子表达式。等效于 0,。zo* 与“z”和“
2、zoo”匹配。+一次或多次匹配前面的字符或子表达式。等效于 1,。zo+ 与“zo”和“zoo”匹配,但与“z”不匹配。?零次或一次匹配前面的字符或子表达式。等效于 0,1。 当 ?紧随任何其他限定符(*、+、?、n、n, 或 n,m)之后时,匹配模式是非贪婪的。非贪婪模式匹配搜索到的、尽可能少的字符串,而默认的贪婪模式匹配搜索到的、尽可能多的字符串。zo? 与“z”和“zo”匹配,但与“zoo”不匹配。o+? 只与“oooo”中的单个“o”匹配,而 o+ 与所有“o”匹配。do(es)? 与“do”或“does”中的“do”匹配。匹配搜索字符串开始的位置。如果标志中包括 m(多行搜索)字符,
3、 还将匹配 n 或 r 后面的位置。如果将 用作括号表达式中的第一个字符,则会对字符集求反。d3 与搜索字符串开始处的 3 个数字匹配。 abc 与除 a、b 和 c 以外的任何字符匹配。$匹配搜索字符串结尾的位置。如果标志中包括 m(多行搜索)字符, 还将匹配 n 或 r 前面的位置。d3$ 与搜索字符串结尾处的 3 个数字匹配。.匹配除换行符 n 之外的任何单个字符。若要匹配包括 n 在内的任意字符,请使用诸如 sS 之类的模式。a.c 与“abc”、“a1c”和“a-c”匹配。标记括号表达式的开始和结尾。1-4 与“1”、“2”、“3”或“4”匹配。aAeEiIoOuU 与任何非元音字符
4、匹配。标记限定符表达式的开始和结尾。a2,3 与“aa”和“aaa”匹配。()标记子表达式的开始和结尾。可以保存子表达式以备将来之用。A(d) 与“A0”至“A9”匹配。保存该数字以备将来之用。|指示在两个或多个项之间进行选择。z|food 与“z”或“food”匹配。(z|f)ood 与“zood”或“food”匹配。/表示 JScript 中的文本正则表达式模式的开始或结尾。在第二个“/”后添加单字符标志可以指定搜索行为。/abc/gi 是与“abc”匹配的 JScript 文本正则表达式。g(全局)标志指定查找模式的所有匹配项,i(忽略大小写)标志使搜索不区分大小写。将下一字符标记为特殊
5、字符、文本、反向引用或八进制转义符。n 与换行符匹配。( 与“(”匹配。 与“”匹配。大多数特殊字符在括号表达式内出现时失去它们的意义,并表示普通字符。有关更多信息,请参见匹配字符的列表中的“括号表达式中的字符”。元字符下表包含了多字符元字符的列表以及它们在正则表达式中的行为。元字符行为示例b与一个字边界匹配;即字与空格间的位置。erb 与“never”中的“er”匹配,但与“verb”中的“er”不匹配。B非边界字匹配。 erB 与“verb”中的“er”匹配,但与“never”中的“er”不匹配。d数字字符匹配。等效于 0-9。在搜索字符串“12 345”中,d2 与“12”和“34”匹配
6、。d 与“1”、“2”、“3”、“4”和“5”匹配。D非数字字符匹配。等效于 0-9。D+ 与“abc123 def”中的“abc”和“def”匹配。w与以下任意字符匹配:A-Z、a-z、0-9 和下划线。等效于 A-Za-z0-9_。在搜索字符串“The quick brown fox”中,w+ 与“The”、“quick”、“brown”和“fox”匹配。W与除 A-Z、a-z、0-9 和下划线以外的任意字符匹配。等效于 A-Za-z0-9_。 在搜索字符串“The quick brown fox”中,W+ 与“”和所有空格匹配。xyz字符集。与任何一个指定字符匹配。abc 与“plain
7、”中的“a”匹配。xyz反向字符集。与未指定的任何字符匹配。abc 与“plain”中的“p”、“l”、“i”和“n”匹配。a-z字符范围。匹配指定范围内的任何字符。a-z 与“a”到“z”范围内的任何小写字母字符匹配。a-z反向字符范围。与不在指定范围内的任何字符匹配。a-z 与不在范围“a”到“z”内的任何字符匹配。n正好匹配 n 次。n 是非负整数。o2 与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配。n,至少匹配 n 次。n 是非负整数。* 与 0, 相等。+ 与 1, 相等。o2, 与“Bob”中的“o”不匹配,但与“foooood”中的所有“o”匹配。n,m匹配至
8、少 n 次,至多 m 次。n 和 m 是非负整数,其中 n <= m。逗号和数字之间不能有空格。? 与 0,1 相等。在搜索字符串“1234567”中,d1,3 与“123”、“456”和“7”匹配。(模式)与模式 匹配并保存匹配项。您可以从由 JScript 中的 exec Method返回的数组元素中检索保存的匹配项。若要匹配括号字符 ( ),请使用“(”或者“)”。(Chapter|Section) 1-9 与“Chapter 5”匹配,保存“Chapter”以备将来之用。(?:模式)与模式 匹配,但不保存匹配项;即不会存储匹配项以备将来之用。这对于用“or”字符 (|) 组合模式
9、部件的情况很有用。industr(?:y|ies) 与 industry|industries 相等。(?=模式)积极的预测先行。找到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。不会保存匹配项以备将来之用。(?=.*d).4,8$ 对密码应用以下限制:其长度必须介于 4 到 8 个字符之间,并且必须至少包含一个数字。在该模式中,.*d 查找后跟有数字的任意多个字符。对于搜索字符串“abc3qr”,这与“abc3”匹配。从该匹配项之前(而不是之后)开始,.4,8 与包含 4-8 个字符的字符串匹配。这与“abc3qr”匹配。 和 $ 指定搜索字符串的开始和结束位置。这将在搜索字符串包含匹
10、配字符之外的任何字符时阻止匹配。(?!模式)消极的预测先行。匹配与模式 不匹配的搜索字符串。找到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。不会保存匹配项以备将来之用。b(?!th)w+b 与不以“th”开头的单词匹配。在该模式中,b 与一个字边界匹配。对于搜索字符串“ quick ”,这与第一个空格匹配。(?!th) 与非“th”字符串匹配。这与“qu”匹配。从该匹配项开始,w+ 与一个字匹配。这与“quick”匹配。cx匹配 x 指示的控制字符。x 的值必须在 A-Z 或 a-z 范围内。如果不是这样,则假定 c 就是文本“c”字符本身。cM 与 Ctrl+M 或一个回车符匹配。x
11、n匹配 n,此处的 n 是一个十六进制转义码。十六进制转义码必须正好是两位数长。允许在正则表达式中使用 ASCII 代码。x41 与“A”匹配。x041 等效于后跟有“1”的“x04”(因为 n 必须正好是两位数)。num匹配 num,此处的 num 是一个正整数。这是对已保存的匹配项的引用。(.)1 与两个连续的相同字符匹配。n标识一个八进制转义码或反向引用。如果 n 前面至少有 n 个捕获子表达式,那么 n 是反向引用。否则,如果 n 是八进制数 (0-7),那么 n 是八进制转义码。(d)1 与两个连续的相同数字匹配。nm标识一个八进制转义码或反向引用。如果 nm 前面至少有 nm 个捕
12、获子表达式,那么 nm 是反向引用。如果 nm 前面至少有 n 个捕获子表达式,则 n 是反向引用,后面跟有文本 m。如果上述情况都不存在,当 n 和 m 是八进制数字 (0-7) 时,nm 匹配八进制转义码 nm。11 与制表符匹配。nml当 n 是八进制数字 (0-3),m 和 l 是八进制数字 (0-7) 时,匹配八进制转义码 nml。011 与制表符匹配。un匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符。u00A9 与版权符号 (©) 匹配。非打印字符下表包含表示非打印字符的转义序列。字符匹配等效于f换页符。x0c 和 cLn换行符。x0a 和 cJr回
13、车符。x0d 和 cMs任何空白字符。其中包括空格、制表符和换页符。 fnrtvS任何非空白字符。 fnrtvtTab 字符。x09 和 cIv垂直制表符。x0b 和 cK优先级顺序正则表达式的计算方式与算术表达式非常类似;即从左到右进行计算,并遵循优先级顺序。下表按从高到低的顺序包含了正则表达式运算符的优先级顺序。运算符说明转义符(), (?:), (?=), 括号和中括号*、+、?、n、n,、n,m限定符、$、任何元字符定位点和序列|替换字符具有高于替换运算符的优先级,例如,允许“m|food”匹配“m”或“food”。创建正则表达式Visual Studio 2010“正则表达式”描述在
14、搜索文本正文时要匹配的一个或多个字符串。正则表达式可用作与要搜索的文本相比较的字符模式。正则表达式的结构与所创建的算术表达式的结构类似。较大的表达式可由小的表达式通过使用各种元字符和运算符进行组合而创建。正则表达式的各组成部分可以是单个字符、字符集、字符范围或在几个字符之间选择。也可以是这些组成部分的任意组合。构造正则表达式通过在一对分隔符之间放置表达式的各种组成部分,就可以构建正则表达式。在 JScript 中,分隔符是一对正斜杠 (/) 字符,如以下示例所示。复制/expression/正则表达式示例下表包含典型正则表达式的示例。正则表达式说明/s*$/匹配空行。/d2-d5/匹配由两位数
15、字、一个连字符再加五位数字组成的 ID 号。/<s*(S+)(s>*)?>sS*<s*/1s*>/匹配 HTML 标记。普通字符最简单的正则表达式是与搜索字符串相比较的单个普通字符。例如,单字符正则表达式 A 会始终匹配字母 A,无论其会出现在搜索字符串的哪个位置。以下是 JScript 单字符正则表达式的一些示例。 复制/a/7/M/可以将多个单字符组合起来以形成较长的表达式。例如,正则表达式 /the/ 会匹配以下搜索字符串中的“the”:“the”、“there”、“other”和“over the lazy dog”。无需使用任何串联运算符。只需连续输入字
16、符即可。元字符除普通字符之外,正则表达式还可以包含“元字符”。例如,元字符 d,它与数字字符相匹配。有关更多信息,请参见正则表达式语法。普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大小写字母、所有数字、所有标点符号和一些符号。匹配任意字符句点字符 (.) 匹配任何单个打印或除换行符 (n) 以外的字符串中的非打印字符。/a.c/ 正则表达式可匹配“aac”、“abc”、“acc”、“adc”、“a1c”、“a2c”、“a-c”和“a#c”。要匹配搜索字符串中包含一个句点 (.),您可以在句点前面加一个反斜杠 () 字符表达式中。表达式 /filename.ext/ 匹
17、配“filename.ext”。匹配字符列表可以通过在方括号 中放置一个或多个单个字符,创建匹配字符的列表。 括号表达式中的任何字符均仅与正则表达式中紧邻括号表达式的单个字符相匹配。例如,/Chapter 12345/ 表达式匹配“Chapter 1”、“Chapter 2”、“Chapter 3”、“Chapter 4”和“Chapter 5”。要使用范围代替字符本身来表示匹配字符,可以使用连字符 (-)。表达式 /Chapter 1-5/ 与 /Chapter 12345/ 等效。若要查找不在列表或范围内的所有字符,请将插入符号 () 放在列表的开头。例如,表达式 /aAeEiIoOuU/
18、 匹配任何非元音字符。有关更多信息,请参见匹配字符的列表。限定符可以使用“限定符”指定其中的单个字符或字符集重复指定次数的正则表达式。限定符引用在其前面并与其紧邻(左侧)的表达式。限定符位于大括号 中,并包含指示出现次数上下限的数值。例如,c1,2 匹配 1 个或 2 个字母 c。仅指定一个数字时,除非其后紧跟一个逗号,否则表示上限。例如,c3 匹配 3 个字符 c,而 c5, 匹配 5 个或更多字母 c。还可以使用单字符限定符,如下表所示。限定符显式限定符含义*0,匹配上一个元素零次或多次。+1,匹配上一个元素一次或多次。?0,1匹配前面的元素零次或一次。以下是一些表达式示例及其匹配的搜索字
19、符串。正则表达式限定符的含义匹配/Chapter 1-90-90,/ 或/Chapter 1-90-9*/匹配 0-9 零次或多次。“Chapter 1”、“Chapter 25”、“Chapter 401320”/Chapter 0-91,2/匹配 0-9 一次或两次。“Chapter 0”、“Chapter 03”、“Chapter 1”、“Chapter 25”、“Chapter 40”/Chapter 1-90-90,1/ 或/Chapter 1-90-9?/匹配 0-9 零次或一次。“Chapter 1”、“Chapter 25”、“Chapter 40”有关更多信息,请参见JScr
20、ipt 中的限定符。行边界和字边界通过“定位点”,您可以指定正则表达式必须位于搜索字符串的开头或结尾,或者位于搜索字符串中行或字的开头或结尾位置,以形成匹配。有关更多信息,请参见定位点。指定替换项“|”字符指定表示匹配的两个或多个替换项。例如,JScript 正则表达式 /(Chapter|Section) 1-9/ 匹配以下内容:“Chapter 1”、“Chapter 9”和“Section 2”。有关更多信息,请参见替换和子表达式。使用子匹配项在正则表达式中使用括号可创建子表达式。程序可检索生成的子匹配项。有关更多信息,请参见替换和子表达式。可以从正则表达式和替换字符串中引用子表达式。有
21、关更多信息,请参见JScript 中的反向引用。正则表达式编程Visual Studio 2010可以在 JScript 中使用正则表达式搜索字符串中的模式、替换文本以及提取子字符串。搜索以下 JScript 示例查找某个单词的所有匹配项。创建该正则表达式的语句为var re = /w+/g;/w+/ 模式指定匹配以下一个或多个任意字符:A-Z、a-z、0-9 和下划线字符。模式之后的 g(全局)标志,指示搜索操作应查找该模式的所有匹配项,而不仅仅是第一个匹配项。还可以使用以下 JScript 替换语法。var re = new RegExp("w+", "g&q
22、uot;);要检索每个匹配项,exec 方法 将从 lastIndex 位置继续搜索,直到返回 Null。VBC#C+F#JScript复制不支持该语言或没有可用的代码示例。以下示例仅查找第一个匹配项。因为未设置全局 (g) 标志,搜索操作将从搜索字符串的起始位置开始。VBC#C+F#JScript复制不支持该语言或没有可用的代码示例。替换在以下示例中,“a”将替换“the”的匹配项。但不会替换实例“The”,因为正则表达式标志中未包含 i(忽略大小写)标志。该示例使用 replace 方法。VBC#C+F#JScript复制不支持该语言或没有可用的代码示例。提取子字符串在正则表达式模式中放置
23、括号以创建可存储以供将来使用的子匹配项。在以下示例中,该模式包含三个子匹配项。子匹配字符串与每个匹配项一起显示。exec 方法 将返回一个数组。数组元素 0 包含了完整的匹配项,而元素 1 到 n 包含子匹配项。VBC#C+F#JScript复制不支持该语言或没有可用的代码示例。标志在 JScript 正则表达式 /abc/gim 中,g 指示全局标志、i 指示忽略大小写标志,而 m 指示多行标志。下表显示了允许的标志。JScript 标志如果标志存在g查找搜索字符串中该模式的所有匹配项,而不仅仅是第一个匹配项。i搜索不区分大小写。m 匹配 n 或 r 之后的位置,而$ 匹配 n 或 r 之前
24、的位置。无论标志是否存在, 均匹配搜索字符串开头的位置,而 $ 均匹配搜索字符串结尾的位置。附加功能还可以使用以下附加编程功能。功能说明compile 方法 (Visual Studio - JScript)将正则表达式编译为内部格式,从而更快地执行。 test 方法测试搜索字符串内是否存在模式。 search 方法返回首个匹配项的位置。请参见正则表达式对象Visual Studio 2010其他版本 · Visual Studio 2008· Visual Studio 2005此对象包含正则表达式模式以及标识如何应用该模式的标志。复制/ The explicit con
25、structor for a Regular Expression object.function RegExp(pattern : String ,flags : String)function RegExp(regexObj : System.Text.RegularExpressions.Regex)/ The implicit constructor for a Regular Expression object./pattern/flags参数图案必选。要使用的正则表达式模式。如果使用语法 1,则模式必须为字符串。如果使用语法 2,模式将由“/”字符分隔。flags可选。如果使用语法
26、 1,则标志必须处于字符串中。如果使用语法 2,标志字符将紧接在最后一个“/”字符之后。可以组合使用的可用标志有:· g(全局搜索出现的所有模式)· i(忽略大小写)· m(多行搜索)regexObj必选。包含要使用的正则表达式模式的 Regex 对象。备注正则表达式对象不应与全局 RegExp 对象混淆。它们虽然看起来相似,但也可以很容易地加以区分。正则表达式对象的属性只包含有关一个特定正则表达式实例的信息,而全局 RegExp 对象的属性则包含有关所发生的每一匹配的不断更新的信息。正则表达式对象存储用于搜索字符组合的字符串的模式。当创建正则表达式对象后,会将该对象传递到字符串方法,或者给字符串传递正则表达式对象的方法。有关最近执行的搜索的信息存储在全局 RegExp 对象中。当搜索字符串频繁更改或未知时(例如从用户输入导出的字符串),应使用语法 1。当您提前知道搜索字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 维修作业区危险源考试试题及答案(修理工)
- 湖北省工程测量员理论模拟试题(附答案)
- 解析卷-吉林省双辽市七年级上册有理数及其运算同步测评试题(含详细解析)
- 推拿治疗学复习试题附参考答案详解(轻巧夺冠)
- 押题宝典期货从业资格之《期货法律法规》模考模拟试题附参考答案详解(考试直接用)
- 考点解析-辽宁省灯塔市中考数学真题分类(勾股定理)汇编章节练习试题(解析卷)
- 微型企业面试题库及完整答案详解(全优)
- 2025至2030年中国直接接触食品材料市场供需现状及投资战略研究报告
- 解析卷人教版8年级数学下册《平行四边形》定向练习试题(含详细解析)
- 2025版塑钢门窗材料行业技术培训与合作合同
- 体检中心礼仪培训课件
- 独立基础教学课件
- 20以内加减法口算题(10000道)(A4直接打印-每页100题)
- 会计从业资格基础知识汇总
- 项目干系人管理评估
- 私立民办高中学校项目建议书
- 比亚迪汽车发展史
- 茶与健康 第二讲 茶成分课件
- 手术部位标识
- 项目总结ppt范文
- 医院体检中心现状与五年发展规划
评论
0/150
提交评论