正则表达式-将搜索结果高亮
2017-09-06 22:45
176 查看
模拟:
将要查找的字符串中,指定字符替换为高亮的字符:
方法一:
返回结果:
方法二:
结果:
但是问题是,将name中的大写的A也替换为小写了。
方法三:
结果:
很nice。又简单又快捷
--------
将要查找的字符串中,指定字符替换为高亮的字符:
方法一:
package com.java.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HighLight { public static void main(String[] args) { String keyword = "a"; String regexp = keyword + "+"; String name = "啊abfac是的Aaa爱的的a我要是alkja卡和户A玉玉aaa很快就asa啊发A阿达ff"; Pattern pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(name); StringBuffer sb = new StringBuffer(); int start = 0; int end = 0; String temp = ""; while(matcher.find()){ start = matcher.start(); sb.append(name.substring(end, start)); temp = "<i class=\"highlight\">"+matcher.group()+"</i>"; sb.append(temp); end = matcher.end(); } sb.append(name.substring(end)); System.out.println(sb.toString()); } }
返回结果:
啊<i class="highlight">a</i>bf<i class="highlight">a</i>c是的<i class="highlight">Aaa</i>爱的的<i class="highlight">a</i>我要是<i class="highlight">a</i>lkj<i class="highlight">a</i>卡和户<i class="highlight">A</i>玉玉<i class="highlight">aaa</i>很快就<i class="highlight">a</i>s<i class="highlight">a</i>啊发<i class="highlight">A</i>阿达ff
方法二:
package com.java.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HighLight2 { public static void main(String[] args) { String keyword = "a"; String regexp = keyword; String name = "啊abfac是的Aaa爱的的a我要是alkja卡和户A玉玉aaa很快就asa啊发A阿达ff"; Pattern pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(name); String resp = matcher.replaceAll("<i class=\"highlight\">"+keyword+"</i>"); System.out.println(resp); } }
结果:
啊<i class="highlight">a</i>bf<i class="highlight">a</i>c是的<i class="highlight">a</i><i class="highlight">a</i><i class="highlight">a</i>爱的的<i class="highlight">a</i>我要是<i class="highlight">a</i>lkj<i class="highlight">a</i>卡和户<i class="highlight">a</i>玉玉<i class="highlight">a</i><i class="highlight">a</i><i class="highlight">a</i>很快就<i class="highlight">a</i>s<i class="highlight">a</i>啊发<i class="highlight">a</i>阿达ff
但是问题是,将name中的大写的A也替换为小写了。
方法三:
package com.java.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HighLight3 { public static void main(String[] args) { String keyword = "a"; String regexp = keyword + "+"; String name = "啊abfac是的Aaa爱的的a我要是alkja卡和户A玉玉aaa很快就asa啊发A阿达ff"; Pattern pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(name); StringBuffer sb = new StringBuffer(); while(matcher.find()){ matcher.appendReplacement(sb, "<i class=\"highlight\">"+matcher.group()+"</i>"); } matcher.appendTail(sb); System.out.println(sb.toString()); } }
结果:
啊<i class="highlight">a</i>bf<i class="highlight">a</i>c是的<i class="highlight">Aaa</i>爱的的<i class="highlight">a</i>我要是<i class="highlight">a</i>lkj<i class="highlight">a</i>卡和户<i class="highlight">A</i>玉玉<i class="highlight">aaa</i>很快就<i class="highlight">a</i>s<i class="highlight">a</i>啊发<i class="highlight">A</i>阿达ff
很nice。又简单又快捷
--------
相关文章推荐
- 使用正则表达式实现搜索关键字高亮显示
- 正则表达式有无g参数(全局搜索)时,test()结果的差异
- ASP.NET使用正则表达式实现搜索关键字高亮显示
- 基于Python正则表达式提取搜索结果中的站点地址
- 使用Python正则表达式提取搜索结果中的站点
- 基于Python正则表达式提取搜索结果中的站点地址
- 使用正则表达式实现搜索关键字高亮显示
- 使用正则表达式实现搜索关键字高亮显示
- [正则表达式]如何高亮显示搜索关键字
- C# 正则表达式实现字符串搜索
- 正则表达式匹配单个结果,匹配多个结果
- eclipse正则表达式搜索
- JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
- 正则表达式之正向预搜索、反向预搜索
- 【每天一个Linux命令】17. 强大的文件搜索工具grep&&正则表达式
- javaScript中正则表达式预搜索
- myeclipse搜索结果中关键文字高亮颜色修改
- 正则表达式提取Url中QueryString键值(搜索关键字的提取)
- UltraEdit正则表达式搜索替换小技巧
- C#中利用正则表达式实现字符串搜索