




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、正那么表达式选项可以使用影响匹配行为的选项修改正那么表达式模式。可以通过以下两种根本方法之一设置正那么表达式选项:可以在Regex(pattern, options)构造函数中的options参数中指定,其中options是RegexOptions枚举值的按位或组合; 也可以使用内联(?imnsx-imnsx:)分组构造或(?imnsx-imnsx)其他构造在正那么表达式模式内设置它们。在内联选项构造中,一个选项或一组选项前面的减号(-)用于关闭这些选项。例如,内联构造(?ix-ms)将翻开IgnoreCase和IgnorePatternWhiteSpace选项而关闭Multiline和Sin
2、gleline选项。默认情况下,关闭所有正那么表达式选项。下表列出了RegexOptions枚举的成员以及等效的内联选项字符。请注意,选项RightToLeft和Compiled只适用 于表达式整体而不允许内联。(它们只能在Regex构造函数的options参数中指定。)选项None和ECMAScript不允许内联。RegexOption成员内联字符说明None N/A指定不设置任何选项。IgnoreCase i指定不区分大小写的匹配。Multiline m指定多行模式。更改 人和$的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字 符串的开头和结尾匹配。ExplicitCaptu
3、re n指定唯一有效的捕获是显式命名或编号的(?.)形式的组。这允许圆括号充当非捕获组,从而防止了由(?:.)导致的语法上的笨拙。Compiled N/A指定正那么表达式将被编译为程序集。生成该正那么表达式的Microsoft中间语言(MSIL)代码;以较长的启动时间为代价,得到更快的执行速度。Singleline s指定单行模式。更改句点字符(.)的含义,以使它与每个字符(而不是除n之外的所有字符)匹配。IgnorePatternWhitespace x指定从模式中排除非转义空白并启用数字符号(#)后面的注释。(有关转义空白字符的列表,请参见字符转义。)请注意,空白永远不会从字符类中消除。R
4、ightToLeft N/A指定搜索是从右向左而不是从左向右进行的。具有此选项的正那么表达式将移动到起始位置的左边 而不是右边。(因此,起始位置应指定为字符串的结尾而不是开头。)为了防止构造具有无限循环的正那么表达式的可能性,此选项不能在中流指定。但是,(?)回忆后发构造提供了可用作子表达式的类似替代物。RightToLeft只更改搜索方向。它不会反转所搜索的子字符串。预测先行和回忆后发断言不改变:预测先行向右搜 索;回忆后发向左搜索。ECMAScript N/A指定已为表达式启用了符合ECMAScript的行为。此选项仅可与IgnoreCase和Multiline标志一起使用。将ECMASc
5、ript同任何其他标志一起使用将导致异常。CultureInvariant N/A指定忽略语言中的区域性差异。有关详细信息,请参见在RegularExpressions命名空间中执行不区分区域性的操作。反向引用反向引用提供查找重复字符组的方便的方法。它们可被认为是再次匹配同一个字符串的快捷指令。正那么表达式选项可以使用影响匹配行为的选项修改正那么表达式模式。可以通过以下两种根本方法之一设置正那么表达式选项:可以在Regex(pattern, options)构造函数中的options参数中指定,其中options是RegexOptions枚举值 的按位或组合;也可以使用内联(?imnsx-im
6、nsx:)分组构造或(?imnsx-imnsx)其他构造在正那么表达式模式内设置它们。在内联选项构造中,一个选项或一组选项前面的减号(-)用于关闭这些选项。例如,内联构造(?ix-ms)将翻开IgnoreCase和IgnorePatternWhiteSpace选项而关闭Multiline和Singleline选项。默认情况下,关闭所有正那么表达 式选项。下表列出了RegexOptions枚举的成员以及等效的内联选项字符。请注意,选项RightToLeft和Compiled只适用 于表达式整体而不允许内联。 (它们只能在Regex构造函数的options参数中指定。)选项None和ECMAScr
7、ipt不允许内联。RegexOption成员内联字符说明None N/A指定不设置任何选项。IgnoreCase i指定不区分大小写的匹配。Multiline m指定多行模式。更改 人和$的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字 符串的开头和结尾匹配。ExplicitCapture n指定唯一有效的捕获是显式命名或编号的(?.)形式的组。这允许圆括号充当非捕获组,从而防止了由(?:.)导致的语法上的笨拙。Compiled N/A指定正那么表达式将被编译为程序集。生成该正那么表达式的Microsoft中间语言(MSIL)代码;以较长的启动时间为代价,得到更快的执行速度。Si
8、ngleline s指定单行模式。更改句点字符(.)的含义,以使它与每个字符(而不是除n之外的所有字符)匹配。IgnorePatternWhitespace x指定从模式中排除非转义空白并启用数字符号(#)后面的注释。(有关转义空白字符的列表,请参见字符转义。)请注意,空白永远不会从字符类中消除。RightToLeft N/A指定搜索是从右向左而不是从左向右进行的。具有此选项的正那么表达式将移动到起始位置的左边 而不是右边。(因此,起始位置应指定为字符串的结尾而不是开头。)为了防止构造具有无限循环的正那么表达式的可能性,此选项不能在中流指定。但是, (?)回忆后发构造提供了可用作子表达式的类似
9、替代物。RightToLeft只更改搜索方向。它不会反转所搜索的子字符串。预测先行和回忆后发断言不改变:预测先行向右搜 索;回忆后发向左搜索。ECMAScript N/A指定已为表达式启用了符合ECMAScript的行为。此选项仅可与IgnoreCase和Multiline标志一起使用。将ECMAScript同任何其他标志一起使用将导致异常。CultureInvariant N/A指定忽略语言中的区域性差异。有关详细信息,请参见在RegularExpressions命名空间中执行不区分区域性的操作。分组构造分组构造使您可以捕获子表达式组并提高具有非捕获预测先行和回忆后发修饰符的正那么表达式的效
10、率。下表描述了正那么表达式分组构造。分组构造说明()捕获匹配的子字符串(或非捕获组;有关详细信息,请参见正那么表达式选项中的ExplicitCapture选项)。使用()的捕获根据左括号的顺序从1开始自动编号。捕获元素编号为零的第一个捕获是由整个正那么表达式模式匹配的文本。(? )将匹配的子字符串捕获到一个组名称或编号名称中。用于name的字符串不能包含任何标点符号,并且不能以数字开头。可以使用单引号替代尖括号,例如(?name)o(? )平衡组定义。删除先前定义的name2组的定义并在namel组中存储先前定义的name2组和 当前组之间的间隔。如果未定义name2组,那么匹配将回溯。由于删
11、除name2的最后一个定义会显示name2的先 前定义,因此该构造允许将name2组的捕获堆栈用作计数器以跟踪嵌套构造(如括号)。在此构造中,namel是可选的。可以使用单引号替代尖括号,例如(?name1-name2)。(?:)非捕获组。(?imnsx-imnsx:)应用或禁用子表达式中指定的选项。例如,(?i-s:)将翻开不区分大小写并禁用单行模式。有关 详细信息,请参见正那么表达式选项。(?=)零宽度正预测先行断言。 仅当子表达式在此位置的右侧匹配时才继续匹配。 单词匹配,而不与该数字匹配。此构造不会回溯。(?!)零宽度负预测先行断言。仅当子表达式不在此位置的右侧匹配时才继续匹配。 开头
12、的单词匹配。(?=)零宽度正回忆后发断言。仅当子表达式在此位置的左侧匹配时才继续匹配。 面的99的实例匹配。此构造不会回溯。(? )非回溯子表达式(也称为“贪婪子表达式)。该子表达式仅完全匹配一次,然后就不会逐段参与回溯了。(也就是说,该子表达式仅与可由该子表达式单独匹配的字符串匹配。)命名捕获根据左括号的从左到右的顺序按顺序编号(与非命名捕获类似),但在对所有非命名捕获进行计数之后才开始对命名捕获进行编号。例如,模式(?abc)/d+)?(?xyz)(.*)按编号和名称产生以下捕获组。(编号为0的第一个捕获总是指整个模式)。编号名称模式0 0(默认名称)(?abc)/d+)?(?xyz)(.
13、*)1 1(默认名称)(?abc)/d+)2 2(默认名称)(.*)3 1 (?abc)4 2 (?xyz)其他构造下表列出了用于修改正那么表达式的子表达式。构造定义(?imnsx-imnsx)对诸如不区分大小写这样的选项进行设置或禁用以使其在模式中间翻开或关闭。有关特定选项的信息,请参见正那么表达式选项。在封闭组结束之前,选项更改将一直有效。请参见有关分组构造(?imnsx-imnsx:)的信息,它是一个更为巧妙的形式。(?#)插入到正那么表达式内部的内联注释。该注释在第一个右括号字符处终止。#至行尾X模式注释。该注释以非转义的#开头,并继续到行的结尾。(请注意,必须激活x选项或RegexO
14、ptions.IgnorePatternWhitespace枚举选项才能识别此类注释。)原子零宽度断言下表中描述的元字符不会使引擎在字符串中前进或使用字符。它们只是根据字符串中的当前位置使匹配成功或失败。例如,A指定当前位置在行或字符串的开头。因此,正那么表达式AFTP只会返回那些在行的开头出现的字符串例如,w+(?=d)与后跟数字的例如,bun)w+b与不以un例如,(?=19)99与跟在19后“FTP的匹配项。断言说明A指定匹配必须出现在字符串的开头或行的开头。有关详细信息,请参见正那么表达式选项中的Multiline选项。$指定匹配必须出现在以下位置:字符串结尾、字符串结尾的n之前或行的
15、结尾。有关详细信息,请参见正那么表 达式选项中的Multiline选项。A指定匹配必须出现在字符串的开头忽略Multiline选项。Z指定匹配必须出现在字符串的结尾或字符串结尾的n之前忽略Multiline选项。z指定匹配必须出现在字符串的结尾忽略Multiline选项。G指定匹配必须出现在上一个匹配结束的地方。与Match.NextMatch一起使用时,此断言确保所有匹配都是连 续的。b指定匹配必须出现在w字母数字和W非字母数字字符之间的边界上。匹配必须出现在单词边界上,即出现在由任何非字母数字字符分隔的单词中第一个或最后一个字符上。B指定匹配不得出现在b边界上。限定符限定符将可选数量的数据
16、添加到正那么表达式。限定符表达式应用于紧挨着它前面的字符、组或字符类。.NETFramework正那么表达式支持最小匹配lazy限定符。下表描述了影响匹配数量的元字符。*指定零个或更多个匹配;例如w*或abc*。等效于0,。+指定一个或多个匹配;例如w+或abc+ o等效于1,。?指定零个或一个匹配;例如w?或abc?。等效于0,1。n指定恰好n个匹配;例如pizza2。n,指定至少n个匹配;例如abc2,。n,m指定至少n个但不多于m个匹配。*?指定尽可能少地使用重复的第一个匹配等效于lazy *。+?指定尽可能少地使用重复但至少使用一次等效于lazy +。?指定使用零次重复如有可能或一次重
17、复lazy ? on?等效于n lazy n。n,?指定尽可能少地使用重复但至少使用n次lazy n,。n,m?指定介于n次和m次之间、尽可能少地使用重复lazy n,m。后向引用构造下表列出了用于将后向引用修饰符添加到正那么表达式中的可选参数。后向引用构造定义number后向引用。例如,w1查找双写的单词字符。k命名后向引用。例如,?wk查找双写的单词字符。表达式?w43执行同样的操作。可以使用单引号替代尖括号,例如kchar。请注意八进制转义代码和使用相同表示法的number后向引用之间的多义性。有关正那么表达式引擎如何解析多义性的详细信息,请参见反向引用。替换构造下表列出了用于修改正那么
18、表达式以允许进行二者之一/或匹配的特殊字符。定义:|与用|垂直条字符分隔的任何一个术语匹配;例如,cat|dog|tiger。使用最左侧的成功匹配。?expressionyes|no如果表达式在此位置匹配,那么与yes局部匹配;否那么,与no局部匹配。no局部可省略。表达式可以是任何有效的子表达式,但它将变为零宽度断言,因此该语法等效于?=expressionyes|no。请注意,如果表达式是命名组的名称或捕获组编号,那么替换构造将解释为捕获测试在本表的下一行对此进行了描述c假设要防止在这些情况下产生混淆,那么可以显式拼出内部?=expression。?nameyes|no如果命名捕获字符串有
19、匹配,那么与yes局部匹配;否那么,与no局部匹配。no局部可省略。如果给定的名称不与此表达式中使用的捕获组的名称或编号对应,那么替换构造将解释为表达式测试在本表的上一行进行了描述。字符类 字符类是一个字符集,如果字符集中的任何一个字符有匹配,它就会找到该匹配项。下表总结了字符匹配语法字符类说明与除n之外的任何字符匹配。如果已用Singleline选项做过修改,那么句点字符将与任何字符匹配。有关详细信息,请参见正那么表达式选项。aeiou 与指定字符集中包含的任何单个字符匹配。仁aeiou 与不在指定字符集中的任何单个字符匹配。0-9a-fA-F使用连字号允许指定连续字符范围。p( name
20、)与name 指定的命名字符类中的任何字符匹配。支持的名称为Unicode组和块范围。例如,Ll、Nd、Z、IsGreek、IsBoxDrawing。P( name )与在 name 中指定的组和块范围中未包含的文本匹配。w与任何单词字符匹配。等效于Unicode字符类别pLlpLupLtpLopNdpPc。如果用ECMAScript选项指定了符合ECMAScript的行为,那么w等效于a-zA-Z_0-9。W与任何非单词字符匹配。等效于Unicode类别ApLlpLupLtpLopNdpPc。如果用ECMAScript选项指定了符合ECMAScript的行为,那么W等效于Aa-zA-Z_0-9。s与任何空白字符匹配。等效于Unicode字符类别fnrtvx85pZ。如果用ECMAScript选项指定了符合ECMAScript的行为,那么s等效于fnrtv。S与任何非空白字符匹配。等效于Unicode字符类别Afnrtvx85pZ。如果用ECMAScript选项指定了符合ECMAScript的行为,那么S等效于Afnrtv。d与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中英语教师工作计划
- 7 的乘法口诀(教学设计)-2024-2025学年二年级上册数学人教版人教版
- 本科毕业论文完整范文(满足查重要求)论我国恐怖活动犯罪的刑法对策
- 中(朝)医适宜技术在治疗女性更年期综合征中的应用进展
- 2024年四年级英语上册 Unit 1 My classroom Part B 第三课时教学实录 人教PEP
- DB3715-T 29-2022 研学旅行课程设计规范
- 2023-2024学年高中化学 3.2 离子键 离子晶体教学实录 苏教版选择性必修2
- 3 学会反思 第二课时教学设计-2023-2024学年道德与法治六年级下册统编版
- 建设工程施工管理协议书
- 2024年五年级英语下册 Unit 4 What's wrong with you Lesson 20教学实录 人教精通版(三起)
- 公园物业管理安保服务投标技术标方案参考借鉴范本
- 《习近平法治思想概论(第二版)》 课件 3.第三章 习近平法治思想的实践意义
- 中医药文化知识培训课件
- 2025中智集团招聘高频重点提升(共500题)附带答案详解
- 二 20以内的退位减法 第1课时 十几减9课件2024-2025人教版一年级数学下册
- 减资协议书(2篇)
- 2025年山东能源集团权属企业内蒙古荣信化工限公司社会招聘高频重点提升(共500题)附带答案详解
- 口腔科急救培训
- 退役军人创业扶持协议
- 2025年中储粮集团公司招聘笔试参考题库含答案解析
- 保护母亲河日关爱河湖保护母亲河保卫黄河课件
评论
0/150
提交评论