FreeMarker的replace函数,去除数据中的html标
2019-12-23 本文已影响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代码,包括图片和链接,仅留下纯文本的内容。