zoukankan      html  css  js  c++  java
  • Lotusscript代理调用正则表达式过滤掉<html>代码,获取notesRichTextItem内容信息的方法

    前段时间用lotus写了个内容发布系统,使用notesRichTextItem保存内容。首页有个栏目块需要抽取文章的摘要信息(也就前多少个字符),手动输入的内容没问题,可以正常抽取;可是用户有时候在文档的前面插了个图片,或是从Word、网页上复制下来的信息贴进去保存之后,notesRichTextItem里面的内容就会带有<html>代码格式,抽取数据时数据、格式的问题就来了,晕啊。

         在网上找到一个解决办法,就是在Lotusscript代理中调用正则将得到的内容先替换,然后再截取内容片断。

    具体代码如下(用于window平台):

    Class RegExp
    ' RegExp -- use VBScript RegExp object to provide regular expressions
    ' 2004-06-03 David Phillips, rfdinc.com First version.

    Public matches As Variant
    Public oRegExp As Variant

    ' VBScript RegExp properties
    Public Pattern As String
    Public IgnoreCase As Boolean ' default = False
    Public Global As Boolean ' default = False

    Sub new ()
      Set oRegExp = CreateObject ("VBScript.RegExp")
    End Sub

    Public Function Match (source As String, pattern As String) As Boolean
    ' RegEx.Match -- scan source for pattern, set matches collection and return true if any
    ' (Can't call it Execute as that collides with LotusScript built-in function and statement.)
      With oRegExp
       .Pattern = pattern ' regular expression to match
       .IgnoreCase = IgnoreCase
       .Global = Global
       Set matches = .Execute (source) ' do match
       Match = (Not 0 = matches.count)
      End With
    End Function

    Public Function Replaces (source As String, pattern As String, replacement As String) As String
    ' RegEx.Replaces -- scan source for pattern, if found substitute replacement, return result
    ' (Can't call it Replace as that collides with LotusScript built-in function.)
      With oRegExp
       .Pattern = pattern
       .IgnoreCase = IgnoreCase
       .Global = Global
       Replaces = .Replace (source, replacement) ' do replace
      End With
    End Function

    Public Function Test (source As String, pattern As String) As Boolean
    ' RegEx.Test -- scan source for pattern, return true if found
      With oRegExp
       .Pattern = pattern
       .IgnoreCase = IgnoreCase
       Test = .Test (source)
      End With
    End Function


    End Class

    -----------------------然后这样进行调用---------------------------------------------------

    Dim re As New RegExp
    re.IgnoreCase = True ' 设置是否区分字符大小写。
    re.Global = True ' 设置全局可用性。

    Gst = re.Replaces (Gst, "<[^>]+>", "") '删除所有html标签

  • 相关阅读:
    x+=y与x=x+y有什么区别?
    Linux下带宽流量工具iftop实践
    使用pinyin4j实现汉字转拼音
    Spring整合Velocity模版引擎
    Json工具类库之Gson实战笔记
    腾讯移动分析 签名代码示例
    Docker搭建Portainer可视化界面
    maven 打包 spring boot 生成docker 镜像
    Mysql 为什么要选择 B+Tree
    idea 添加 注释 配置
  • 原文地址:https://www.cnblogs.com/hannover/p/2311524.html
Copyright © 2011-2022 走看看