zoukankan      html  css  js  c++  java
  • 正则表达式的常用方法和属性

    正则表达式的常用方法和属性


    常用方法:

     

    1 Execute 方法

    描述:对指定的字符串执行正则表达式搜索。

    语法: object.Execute(string)    Execute 方法的语法包括以下几个部分:

     

    object :必需的。总是一个 RegExp 对象的名称。

    string :必需的。要在其上执行正则表达式的文本字符串。

    说明:正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。 Execute 方法返回一个

    Matches 集合,其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配, Execute 将返回空的 Matches 集合。

     

    2 Test 方法

     

    描述:对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。

     

    语法: object.Test(string)

     

    Test 方法的语法包括以下几个部分:

     

    object :必需的。总是一个 RegExp 对象的名称。

     

    string :必需的。要执行正则表达式搜索的文本字符串。

    说明:正则表达式搜索的实际模式是通过 RegExp 对象的 Pattern 属性来设置的。 RegExp.Global 属性对 Test 方法没有影响。如果找到了匹配的模式, Test 方法返回 True ;否则返回 False

     

     

    常用属性:

     

    1 Global 属性

     

    描述:设置或返回一个 Boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。

     

    语法: object.Global [= True | False ]

     

    object 参数总是 RegExp 对象。如果搜索应用于整个字符串, Global 属性的值为 True ,否则其值为 False 。默认的设置为 True


    2 IgnoreCase 属性

     

    描述:设置或返回一个 Boolean 值,指明模式搜索是否区分大小写。

     

    语法: object.IgnoreCase [= True | False ]

     

    object 参数总是一个 RegExp 对象。如果搜索是区分大小写的,则 IgnoreCase 属性为 False ;否则为 True 。缺省值为 True


    3 Pattern 属性

     

    描述:设置或返回被搜索的正则表达式模式。 这是一个最重要的属性,我们主要是设置这个属性来实现数据校验的。

     

    语法: object.Pattern [= "searchstring"]

     

    Pattern 属性的语法包含以下几个部分:

     

    object :必需的。总是一个 RegExp 对象变量。

     

    searchstring :可选的。被搜索的正则字符串表达式。它可能包含设置部分表格中的各种正则表达式字符。

     

      从其他文章转来的补充的应用实例:

     

    最近在用 VB6 解决一个网页解析的应用,涉及到了正则。如何在 VB6 中使用正则表达式,这个在 MS 网站上有介绍,不过介绍的不是很全面。下面结合 MS 网站的内容和搜索到的东西,自己汇总一下。

     

      引用了 Microsoft VBScript Regular Expressions 5.5 后就可以声明正则相关对象了。主要有三个对象: RegExp MatchCollection Match


    4.Multiline

    修饰的是 ^ $

    Multiline False 时,把 ^ $ 与当作每一行 (\n 结尾的 ) 的开头和结束来匹配,

    Multiline True 时,是与整个字符串的开头和结尾匹配;

    Singleline Multiline 根本就是不沾边的,没有互斥的关系。

     

    Singleline

    修饰的是 '.'

    Singleline False 时,匹配的是除 \n 外的所有字符,即搜索到行结束时便停止该次匹配

    Singleline True 的时候匹配的是所有字符(包 \n ),即可以跨越行进行某次匹配

     


    <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->

    DEELX 正则表达式匹配模式

     

    DEELX 匹配模式

     

    DEELX 支持的匹配模式有: IgnoreCase, Singleline, Multiline, Global, RightToLeft, Extended 6 种模式以及它们的组合。

     

    说明

     

    IGNORECASE

     

    匹配时忽略大小写。默认情况下,正则表达式是要区分大小写的。不管是否指定忽略大小写模式,字符类,比如 [A-Z] 是要区分大小写的。

     

    SINGLELINE

     

    使小数点 "." 可以匹配包含换行符( \n )在内的任意字符。默认情况下,小数点只匹配换行符以外的任意字符,不匹配换行符。

     

    MULTILINE

     

    使 ^ 符号除了能够匹配字符串开始位置外,还能匹配换行符( \n )之后的位置;使 $ 符号除了能够匹配字符串结束位置外,还能匹配换行符之前的位置。默认情况下, ^ 符号只能匹配字符串开始位置, $ 符号只能匹配字符串结束位置。

     

    SINGLELINE MULTILINE 虽然听起来相互矛盾,但却是作用在不同的地方。因此它们是可以组合使用的。

     

    在指定了 MULTILINE 之后,如果需要仅匹配字符串开始和结束位置,可以使用 \A \Z

     

    GLOBAL

     

    使 \G 可以用来匹配本次查找匹配的开始位置,对于连续的匹配来说,也就是上次匹配的结束位置。默认情况下, \G 没有作用。

     

    DEELX 在进行替换操作( Replace )时,不管是否指定 GLOBAL 模式, DEELX 都可以进行所有的替换。是否指定 GLOBAL 模式只是对 \G 起作用。如果希望进行有限次数的替换,可在替换操作时指定替换次数。

     

    RIGHTTOLEFT

     

    从右向左的进行匹配。从被匹配字符串的结束位置向前进行查找匹配,同时,在表达式中也是右侧的表达式先进行匹配。

     

    表达式的写法仍然按原来的习惯:匹配次数修饰符( *, +, {n}, ……)仍然位于被修饰部分的右侧而不是左侧; ^ 仍然匹配文本开始而不是文本结束; (?=xxx) 仍然是正向与搜索(向右预搜索),而不是向左;分组( group )编号仍然是从左向右进行编号;等等。

     

    不管整个表达式是否指定了 RightToLeft 模式, " 反向预搜索(反向零宽度断言) " 内的表达式始终采用 RightToLeft 模式。

     

    EXTENDED

     

    使 DEELX 忽略表达式中的空白字符,并且把从 # 开始到该行行末的内容视为注释。默认情况下,正则表达式中的空格,换行等字符将可以匹配相应的字符。指定了 EXTENDED 模式后,如果要在正则表达式中表示空白字符比如空格符号( space )时,应该用 \x20 表示,如果要在表达式中表示 # 符号,应该用 \# 表示。

     

    不管是否指定了 EXTENDED 模式,括号内以 ?# 号开始时,比如 (?# xxx ) ,那么这一对括号以及包含的内容都始终作为注释而被忽略。

     

    Compiled

     

        指定将正则表达式编译为程序集。这会产生更快的执行速度,但会增加启动时间。 ( 在针对同一正则匹配执行多次时使用可以减少执行时间 )

     

    ExplicitCapture

     

        指定有效的捕获仅为形式为 (?<name>...) 的显式命名或编号的组。这使未命名的圆括号可以充当非捕获组,并且不会使表达式的语法 (?:...) 显得笨拙。

     

    IgnorePatternWhitespace 

     

         消除模式中的非转义空白并启用由 # 标记的注释。但是, IgnorePatternWhitespace 值不会影响或消除字符类中的空白。

     


    <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->

    "ExplicitCapture       指定有效的捕获仅为形式为 (?<name>...) 的显式命名或编号的组。这使未命名的圆括号可以充当非捕获组,并且不会使表达式的语法 (?:...)"

    "Compiled         指定将正则表达式编译为程序集。这会产生更快的执行速度,但会增加启动时间。在调用 CompileToAssembly 方法时,不应将此值分配给 Options 属性 "

    "Singleline         指定单行模式。更改点 (.) 的含义,使它与每一个字符匹配(而不是与除 \n 之外的每个字符匹配)。 "

    "IgnorePatternWhitespace         消除模式中的非转义空白并启用由 # 标记的注释。但是, IgnorePatternWhitespace 值不会影响或消除字符类中的空白。 "

    "RightToLeft    指定搜索从右向左而不是从左向右进行。 "

    "ECMAScript   为表达式启用符合 ECMAScript 的行为。该值只能与 IgnoreCase Multiline Compiled 值一起使用。该值与其他任何值一起使用均将导致异常。 "

    "CultureInvariant     指定忽略语言中的区域性差异 "

  • 相关阅读:
    与众不同 windows phone (50)
    与众不同 windows phone (49)
    重新想象 Windows 8.1 Store Apps (93)
    重新想象 Windows 8.1 Store Apps 系列文章索引
    重新想象 Windows 8.1 Store Apps (92)
    重新想象 Windows 8.1 Store Apps (91)
    重新想象 Windows 8.1 Store Apps (90)
    重新想象 Windows 8.1 Store Apps (89)
    重新想象 Windows 8.1 Store Apps (88)
    重新想象 Windows 8.1 Store Apps (87)
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/1994658.html
Copyright © 2011-2022 走看看