matches的使用

matches的使用

需求

把一个传到页面的文字里面的内容部分替换为链接,效果如下

解决

freemarker的matches函数,首先先看下官方介绍

该内建函数决定了字符串是否精确匹配模式。而且,它会返回匹配子串的列表。 返回值是多类型值:

  • 布尔值:如果字符串整体匹配了模式,就是 true, 否则就是 false。比如:"fooo"?matches('fo*') 就是 true,但是 "fooo bar"?matches('fo*')false
  • 序列:字符串匹配的子串的列表。很有可能是长度为0的序列。

其实就是这个字符串只要符合你的正则表达式就会返回true,否则返回false。然后这个函数还可以和group一使用,只要你把要匹配的正则通过()分开,然后就可以取到了。如下

<#assign str = "大声点123232大声点啊">
<#assign r = str?matches("(\\D*)(\\d*)(.*)")>
${r?string}
${r?groups[1]}
${r?groups[2]}
${r?groups[3]}

输出:

true
大声点
123232
大声点啊

这样就可以获得对应的正则表达式所对应的值了。

你可能感兴趣的:(matches的使用)