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

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标签)