zoukankan      html  css  js  c++  java
  • 求去除文档中所有连接的正则表达式

     
    2008年01月18日 星期五 下午 07:24

    abc=Regex.Replace(string,"</?(a|A)( .*?>|>)","")  

    自己换关键词,比如:

    <script[^>]*?>[\\s\\S]*?</script>

    <style[^>]*?>[\\s\\S]*?</style>

    可以替换掉其他无用的信息。

    Dim ss, re, rv
    ss = "Is is the cost of of gasoline going up up?." & vbNewLine
    Set re = New RegExp
    re.Pattern = "\b([a-z]+) \1\b"
    re.Global = True
    re.IgnoreCase = True
    re.MultiLine = True
    rv = re.Replace(ss,"$1")

    <script.*>(^|$|\s|.*)*?</script>  

    /\b([a-z]+) \1\b/gi

    等价的 VBScript 表达式为:

    "\b([a-z]+) \1\b"

       在这个示例中,子表达式就是圆括号之间的每一项。所捕获的表达式包括一个或多个字母字符,即由'[a-z]+' 所指定的。该正则表达式的第二部分是对前面所捕获的子匹配的引用,也就是由附加表达式所匹配的第二次出现的单词。'\1'用来指定第一个子匹配。单词边界元字符确保只检测单独的单词。如果不这样,则诸如 "is issued" 或 "this is" 这样的短语都会被该表达式不正确地识别。

       在 JScript 表达式中,正则表达式后面的全局标志 ('g') 表示该表达式将用来在输入字符串中查找尽可能多的匹配。大小写敏感性由表达式结束处的大小写敏感性标记 ('i') 指定。多行标记指定可能出现在换行符的两端的潜在匹配。对 VBScript 而言,在表达式中不能设置各种标记,但必须使用 RegExp 对象的属性来显式设置。

       使用上面所示的正则表达式,下面的 JScript 代码可以使用子匹配信息,在一个文字字符串中将连续出现两次的相同单词替换为一个相同的单词:

    var ss = "Is is the cost of of gasoline going up up?.\n";
                var re = /\b([a-z]+) \1\b/gim;       //创建正则表达式样式。
                var rv = ss.replace(re,"$1");   //用一个单词替代两个单词。

       最接近的等价 VBScript 代码如下:

    Dim ss, re, rv
                ss = "Is is the cost of of gasoline going up up?." & vbNewLine
                Set re = New RegExp
                re.Pattern = "\b([a-z]+) \1\b"
                re.Global = True
                re.IgnoreCase = True
                re.MultiLine = True
                rv = re.Replace(ss,"$1")

       请注意在 VBScript 代码中,全局、大小写敏感性以及多行标记都是使用 RegExp 对象的适当属性来设置的。

       在replace 方法中使用 $1 来引用所保存的第一个子匹配。如果有多个子匹配,则可以用 $2, $3 等继续引用。

       向后引用的另一个用途是将一个通用资源指示符 (URI) 分解为组件部分。假定希望将下述的URI 分解为协议 (FTP, http, etc),域名地址以及页面/路径:

    http://msdn.microsoft.com:80/scripting/default.htm

    下面的正则表达式可以提供这个功能。对 JScript,为:

    /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

    对 VBScript 为:

    "(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)"

       第一个附加子表达式是用来捕获该 web 地址的协议部分。该子表达式匹配位于一个冒号和两个正斜杠之前的任何单词。第二个附加子表达式捕获该地址的域名地址。该子表达式匹配不包括 '^'、 '/' 或 ':' 字符的任何字符序列。第三个附加子表达式捕获网站端口号码,如果指定了该端口号。该子表达式匹配后跟一个冒号的零或多个数字。最后,第四个附加子表达式捕获由该 web 地址指定的路径以及\或者页面信息。该子表达式匹配一个和多个除'#' 或空格之外的字符。

    <%
    Function ClearJSCode(originCode)
    Dim reg
    set reg = New RegExp
    reg.Pattern = "<SCRIPT[^<]*</SCRIPT>"
    reg.IgnoreCase = True
    reg.Global = True
    clearJSCode = reg.Replace(originCode, "")
    End Function
    %>

    <%

    dim string
    string="aaaa<script>645465646 </script>"

    aaa=ClearJSCode(string)
    Response.write aaa   
    %>

  • 相关阅读:
    前端小功能: 绘制多边形,并判断某个点是否在区域内
    Java设计模式-模板设计模式
    Java设计模式-工厂设计模式
    Java设计模式-单例设计模式
    Java简单的去重算法
    layui时间插件实现动态限制可选时间范围和统计时间间隔
    百度地图坐标只加载可视范围内的坐标
    百度地图创建删除单个坐标
    百度地图加载海量点
    创建百度地图
  • 原文地址:https://www.cnblogs.com/duoe/p/1105281.html
Copyright © 2011-2022 走看看