正则匹配

简介: 正则匹配

我们做搜索的时候,有时需要高亮结果中的关键字,通常使用正则来匹配,有人喜欢在前端使用js,但是我觉得灵活一点的话还是在后台就把需要高亮的字找出来,下面来看个例子:

private String matcher(String logRecord, String regex) {
    StringBuffer sb = new StringBuffer();
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(logRecord);
    while (matcher.find()) {
      matcher.appendReplacement(sb, "<span class=\"tex_ted\">" + matcher.group() + "</span>");
      
    }
    matcher.appendTail(sb);
    return sb.toString();
  }


logRecord 是日志原文,regex 则是搜索关键字,它用作正则表达式。匹配上之后就把原文替换成带html的文字,在jsp页面上则可以通过css样式来显示高亮。

matcher.group() 是匹配成功之后的结果,appendReplacement是把指定的文字用来替换匹配组中的文字,appendTail是把替换后的文件append到StringBuffer里面去,组成新的文字。

例子可以正确匹配 * 、? 之类的,很实用,大家可以试试

相关文章
|
机器学习/深度学习 Web App开发 JavaScript
正则Regester
正则Regester
103 0
正则Regester
正则匹配常见字符串
正则匹配常见字符串
49 0
|
网络协议 JavaScript 前端开发
正则表达式、常用的正则
正则表达式、常用的正则
154 1
|
前端开发 JavaScript Java
正则表达式(极其适合零基础)
正则表达式(极其适合零基础)
158 0
正则表达式(极其适合零基础)
|
新能源 Java 区块链
【常用正则大全】2
【常用正则大全】2
296 0
【常用正则大全】2
|
数据可视化 Linux
【常用正则大全】
【常用正则大全】
264 0
【常用正则大全】
|
数据采集 人工智能 Go
正则处理
正则处理
79 0