asp的RegExp对象正则表达式功能用法[比较全]

RegExp对象提供简单的正则表达式支持功能。
RegExp对象的用法:


代码如下:

Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分字符大小写。
regEx.Global = True ' 设置全局可用性。
Set Matches = regEx.Execute(strng) ' 执行搜索。
For Each Match in Matches ' 遍历匹配集合。
RetStr = RetStr & "Match found at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
RetStr = RetStr & Match.Value & "'." & vbCRLF
Next
RegExpTest = RetStr
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

RegExp 对象的属性
◎ Global属性
Global属性设置或返回一个 Boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。
语法
object.Global [= True | False ]
object 参数总是 RegExp 对象。如果搜索应用于整个字符串,Global 属性的值为 True,否则其值为 False。默认的设置为 True。
Global 属性的用法(改变赋予 Global 属性的值并观察其效果):


代码如下:

Function RegExpTest(patrn, strng)
Dim regEx ' 建立变量。
Set regEx = New RegExp ' 建立规范表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分字母的大小写。
regEx.Global = True ' 设置全程性质。
RegExpTest = regEx.Execute(strng) ' 执行搜索。
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

◎ IgnoreCase属性
IgnoreCase属性设置或返回一个Boolean值,指明模式搜索是否区分大小写。
语法
object.IgnoreCase [= True | False ]
object 参数总是一个 RegExp 对象。如果搜索是区分大小写的,则 IgnoreCase 属性为 False;否则为 True。缺省值为 True。
IgnoreCase 属性的用法(改变赋予 IgnoreCase 属性的值以观察其效果):


代码如下:

Function RegExpTest(patrn, strng)
Dim regEx ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
RegExpTest = regEx.Execute(strng) ' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

◎ Pattern属性
Pattern属性设置或返回被搜索的正则表达式模式。
语法
object.Pattern [= "searchstring"]
Pattern 属性的语法包含以下几个部分:
语法说明:
object 必需的。总是一个 RegExp 对象变量。
searchstring 可选的。被搜索的正则字符串表达式。它可能包含设置部分表格中的各种正则表达式字符。
设置
在书写正则表达式的模式时使用了特殊的字符和序列。下面描述了可以使用的字符和序列,并给出了实例。
  将下一个字符标记为特殊字符或字面值。例如"n"与字符"n"匹配。"n"与换行符匹配。序列"\"与""匹配对面,"("与"("匹配。
 ^ 匹配输入的开始位置。
 $ 匹配输入的结尾。
 * 匹配前一个字符零次或几次。例如,"zo*"可以匹配"z"、"zoo"。
 + 匹配前一个字符一次或多次。例如,"zo+"可以匹配"zoo",但不匹配"z"。
 ? 匹配前一个字符零次或一次。例如,"a?ve?"可以匹配"never"中的"ve"。
 . 匹配换行符以外的任何字符。
 (pattern) 与模式匹配并记住匹配。匹配的子字符串可以从作为结果的 Matches 集合中使用 Item [0]...[n]取得。如果要匹配括号字符(和 ),可使用"(" 或 ")"。
 x|y 匹配 x 或 y。例如 "z|food" 可匹配 "z" 或 "food"。"(z|f)ood" 匹配 "zoo" 或 "food"。
 {n} n 为非负的整数。匹配恰好n次。例如,"o{2}" 不能与 "Bob 中的 "o" 匹配,但是可以与"foooood"中的前两个o匹配。
 {n,} n 为非负的整数。匹配至少n次。例如,"o{2,}"不匹配"Bob"中的"o",但是匹配"foooood"中所有的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。
 {n,m} m 和 n 为非负的整数。匹配至少 n 次,至多 m 次。例如,"o{1,3}" 匹配 "fooooood"中前三个o。"o{0,1}"等价于"o?"。
 [xyz] 一个字符集。与括号中字符的其中之一匹配。例如,"[abc]" 匹配"plain"中的"a"。
 [^xyz] 一个否定的字符集。匹配不在此括号中的任何字符。例如,"[^abc]" 可以匹配"plain"中的"p".
 [a-z] 表示某个范围内的字符。与指定区间内的任何字符匹配。例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
 [^m-z] 否定的字符区间。与不在指定区间内的字符匹配。例如,"[m-z]"与不在"m"到"z"之间的任何字符匹配。
 b 与单词的边界匹配,即单词与空格之间的位置。例如,"erb" 与"never"中的"er"匹配,但是不匹配"verb"中的"er"。
 B 与非单词边界匹配。"ea*rB"与"never early"中的"ear"匹配。
 d 与一个数字字符匹配。等价于[0-9]。
 D 与非数字的字符匹配。等价于[^0-9]。
 f 与分页符匹配。
 n 与换行符字符匹配。
 r 与回车字符匹配。
 s 与任何白字符匹配,包括空格、制表符、分页符等。等价于"[ fnrtv]"。
 S 与任何非空白的字符匹配。等价于"[^ fnrtv]"。
 t 与制表符匹配。
 v 与垂直制表符匹配。
 w 与任何单词字符匹配,包括下划线。等价于"[A-Za-z0-9_]"。
 W 与任何非单词字符匹配。等价于"[^A-Za-z0-9_]"。
 num 匹配 num个,其中 num 为一个正整数。引用回到记住的匹配。例如,"(.)1"匹配两个连续的相同的字符。
  n 匹配 n,其中n 是一个八进制换码值。八进制换码值必须是 1, 2 或 3 个数字长。例如,"11" 和 "11" 都与一个制表符匹配。"011"等价于"01" 与 "1"。八进制换码值不得超过 256。否则,只有前两个字符被视为表达式的一部分。允许在正则表达式中使用ASCII码。
 xn 匹配n,其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如,"x41"匹配"A"。"x041"等价于"x04" 和 "1"。允许在正则表达式中使用 ASCII 码。
Pattern 属性的用法:


代码如下:

Function RegExpTest(patrn, strng)
Dim regEx ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
RegExpTest = regEx.Execute(strng) ' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

RegExp对象的方法
◎ Execute方法
Execute方法对指定的字符串执行正则表达式搜索。
语法
object.Execute(string)
语法部分描述
object 必需的。总是一个 RegExp 对象的名称。
string 必需的。要在其上执行正则表达式的文本字符串。
说明
正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。
Execute 方法返回一个 Matches 集合,其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。
Execute 方法的用法:


代码如下:

Function RegExpTest(patrn, strng)
Dim regEx ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = False ' 设置区分大小写。
regEx.Global = True ' 搜索全部匹配。
RegExpTest = regEx.Execute(strng) ' 执行搜索。
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

◎ Replace方法
Replace方法替换在正则表达式查找中找到的文本。
语法
object.Replace(string1, string2)
语法部分描述
object 必需的。总是一个 RegExp 对象的名称。
string1 必需的。string1 是将要进行文本替换的字符串。
string2 必需的。 string2 是替换文本字符串。
说明
被替换的文本的实际模式是通过 RegExp 对象的 Pattern 属性设置的。
Replace 方法返回 string1 的副本,其中的 RegExp.Pattern 文本已经被替换为 string2。如果没有找到匹配的文本,将返回原来的 string1 的副本。
eplace 方法的用法:


代码如下:

Function ReplaceTest(patrn, replStr)
Dim regEx, str1 ' 建立变量。
str1 = "The quick brown fox jumped over the lazy dog."
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
ReplaceTest = regEx.Replace(str1, replStr) ' 作替换。
End Function
MsgBox(ReplaceTest("fox", "cat"))
' 将 'fox' 替换为 'cat'。

;另外,Replace 方法在模式中替换 subexpressions 。 下面对以前示例中函数的调用,替换了原字符串中的所有字对:
MsgBox(ReplaceText("(S+)(s+)(S+)", "$3$2$1")) ' Swap pairs of words.
◎ Test方法
Test方法对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。
语法
object.Test(string)
语法部分描述
object 必需的。总是一个 RegExp 对象的名称。
string 必需的。要执行正则表达式搜索的文本字符串。
说明
正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExp.Global属性对Test方法没有影响。
如果找到了匹配的模式,Test方法返回True;否则返回False。


代码如下:

Test 方法的用法:
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = False ' 设置是否区分大小写。
retVal = regEx.Test(strng) ' 执行搜索测试。
If retVal Then
RegExpTest = "找到一个或多个匹配。"
Else
RegExpTest = "未找到匹配。"
End If
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

(0)

相关推荐

  • asp自动补全html标签自动闭合(正则表达式)

    复制代码 代码如下: Function closeHTML(strContent) Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match Set re = New RegExp re.IgnoreCase = True re.Global = True arrTags = Array("p", "div", "span", "table", "ul&qu

  • ASP超级链接和HTML函数正则表达式 修正版

    过滤超级链接 复制代码 代码如下: Function RegRemoveHref(HTMLstr) Set ra = New RegExp ra.IgnoreCase = True ra.Global = True ra.Pattern = "<A[^>]+>(.+?)<\/A>" RegRemoveHref = ra.replace(HTMLstr,"$1") END Function 过滤所有HTML代码 复制代码 代码如下: Fu

  • asp.net正则表达式删除指定的HTML标签的代码

    如果全盘删除里面的 HTML 标签,可能会造成阅读上的困难(比如 a, img 这些标签), 最好是删除一部分,保留一部分. 正则表达式里,判断 包含某些字符串 是非常容易理解的,但是如何判断 不包含某些字符串 (是字符串,不是字符,是某些,不是某个) 确实是个费解的事. 复制代码 代码如下: <(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+> 这个正则是判断HTML标签不

  • HTML标签及ASP函数速查表

    HTML文件标记  <html>  <head>  <!-->  <title>  <body> 文字排版标记  <br/>  <nobr>  <p>  <pre>            原始文字样式  <center>  <blockquote>     向内缩排  <h>              标题  <strong>,<b>   

  • ASP中过滤UBB和Html标签

    我们存储在数据库中的内容是HTML格式的,但是有时候我们需要无格式的显示这内容,这是用正则表达式实现的过滤. 复制代码 代码如下: <% function nohtml(str)  dim re  Set re=new RegExp  re.IgnoreCase =true  re.Global=True  re.Pattern="(\<.[^\<]*\>)"  str=re.replace(str," ")  re.Pattern=&quo

  • asp正则表达式使用详解

    复制代码 代码如下: Dim re Set re = new RegExp '创建RegExp实例 re.Pattern = "ab+c" '定义正则表达式文字,你可以在这里替换正则表达式 Dim myString myString = "abcefg" '定义要匹配的字符串,可以进行替换 Response.write(re.Execute(myString)(0)) '进行匹配测试,并写出结果 复制代码 代码如下: <% Dim re Set re = ne

  • ASP.NET使用正则表达式屏蔽垃圾信息

    Regex 类 表示不可变的正则表达式. 命名空间:System.Text.RegularExpressions Regex 类包含若干 static(在 Visual Basic 中为 Shared)方法,使您无需显式创建 Regex 对象即可使用正 则表达式.在 .NET Framework 2.0 版中,将缓存通过调用静态方法而编译的正则表达式,而不会缓存通过调 用实例方法而编译的正则表达式.默认情况下,正则表达式引擎将缓存 15 个最近使用的静态正则表达式.因 此,在过度地依赖一组固定的

  • asp 使用正则表达式替换word中的标签,转为纯文本

    公司客户在使用网站后台编辑添加修改内容时,经常是直接从word文档里复制内容到编辑器里后就提交.结果是在内容显示页面上是五花八门的样式,有时也需要部分纯文本内容作为摘录使用,这些都需要清除word格式.改变客户的习惯要客户先复制到记事本里再粘贴到编辑器里编辑是很难的,所以从我们自己改变起.从网上百度了若干清除word格式的正则,使用效果不甚理想,所以自己写了清除word格式的asp函数,能满足我们自己的使用需求.函数如下: 复制代码 代码如下: function cleanWord(html)

  • ASP 正则表达式常用的几种方法(execute、test、replace)

    RegExp就是建立正则的对像. 如: Set regEx = New RegExp regEx.Pattern 就是来设置正则的模式的, 如: regEx.Pattern ="/d+" regEx.IgnoreCase = True ' 设置是否区分大小写 regEx.Global = True ' 设置全程可用性. RegExp对像有3种方法,分别是execute.test.replace. test方法是对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否

  • 正则表达式速查表(ASP.NET)

    出处:RegExLib.com Regular Expression Cheat Sheet (.NET) 元字符 说明 ^ 匹配字符串的开始位置 $ 匹配字符串的结束位置 . 匹配任意单个字符(换行符 \n 除外) | 交替 {-} 指定要限定的数量 [...] 指定要匹配的字符集 (-) 对表达式进行逻辑分组 * 匹配零或多个前面的表达式 + 匹配一或多个前面的表达式 ? 匹配零或一个前面的表达式 \ 放在上面任何一个字符之前,表示匹配该字符本身.放在其他特殊字符后面,表示字符转义(见下面)

  • ASP正则表达式技巧

    复制代码 代码如下: <% str = request("str") reg = request("reg") set regex = new RegExp With regex .Pattern = reg .IgnoreCase = False .Global = True End With Set match = regex.Execute(str) If match.Count > 0 Then For Each matched in match

  • ASP正则表达式清除HTML指定标签的方法

    在HTML编辑器发布过程中,会出现一些自动生成的HTML标签,或者在留言板程序应用过程中,也会出现有人恶意写入一些HTML代码的情况,所以怎么精准的过滤掉某些特定的属性标签和参数呢?下面是代码: <% Function ReplaceText(fString,patrn,replStr) Set regEx = New RegExp ' 建立正则表达式. regEx.Pattern = patrn ' 设置模式. regEx.IgnoreCase = True ' 设置是否区分大小写. regE

随机推荐