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
大声点啊

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容