美文网首页
FreeMarker的replace函数,去除数据中的html标

FreeMarker的replace函数,去除数据中的html标

作者: 安在成丶 | 来源:发表于2019-12-23 10:20 被阅读0次

    FreeMaker 页面数据标签中的 replace 函数用于替换数据中的指定字符串,可以匹配指定的字符串,也可以匹配符合规则的正则表达式。

    • replace(param1,param2) :替换一般字符串
      param1:匹配的字符串;
      param2:将匹配的字符替换成指定字符
    s = abcd
    ${s?replace('abc', 'kk')}
    
    • replace(param1,param2,param3) :按照正则表达式匹配替换
      param1:匹配的正则表达式
      param2:将匹配的字符替换成指定字符
      param3:匹配模式

    模式如下:


    image.png

    模式解释:

    • i:大小写不区分.
    • f:只替换第一个出现被替换字符串的字符串
    • r:XY是正则表达式
    • c:在正则表达式中允许空格和注释
    • m:正则的多行模式
    • s:对正则表达式启动 “全匹配” 模式表达式匹配任何字符,包括行终止符, 默认情况下,此表达式与行终止符不匹配

    如例:

    <#assign s = 'foo bAr baar'>
    ${s?replace('ba', 'XY')}
    i: ${s?replace('ba', 'XY', 'i')}
    if: ${s?replace('ba', 'XY', 'if')}
    r: ${s?replace('ba*', 'XY', 'r')}
    ri: ${s?replace('ba*', 'XY', 'ri')}
    rif: ${s?replace('ba*', 'XY', 'rif')} 
    

    输出结果:
    foo bAr XYar
    i: foo XYr XYar
    if: foo XYr baar
    r: foo XYAr XYr
    ri: foo XYr XYr
    rif: foo XYr baar

    匹配正则表达式的例子:
    去除数据中的html标签:

    ${s?replace("<[^>]*>","","ri")}
    

    ([>]*)([<])这个通配符可以找到<和<符号间的字符串
    <([^>]
    )([^<]*)>这个通配符可以找到<和>符号间的字符串,作用可能是过滤网页上的html代码,包括图片和链接,仅留下纯文本的内容。

    相关文章

      网友评论

          本文标题:FreeMarker的replace函数,去除数据中的html标

          本文链接:https://www.haomeiwen.com/subject/mwqznctx.html