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


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


    常用方法:

     

    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     指定忽略语言中的区域性差异 "

  • 相关阅读:
    一.在Linux中for和cat遍历文件内容出现no space
    六.安装jdk(基于Centos7安装)
    五·管理mysql
    四·安装mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz(基于Centos7源码安装)
    ArcGIS api for javascript——图形-增加图形到地图
    ArcGIS api for javascript——图层-创建定制的切片图层类型的图层
    ArcGIS api for javascript——图层-创建WMS图层类型的图层
    ArcGIS api for javascript——地图配置-定制缩放动画,定制缩放框
    ArcGIS api for javascript——地图配置-定制缩放动画
    ArcGIS api for javascript——地图配置-滑动器的刻度线、方向、大小的改变
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/1994658.html
Copyright © 2020-2023  润新知