Java 使用正则表达式的搜索函数中的问题
我试图用正则表达式在句子中加粗搜索词Java 使用正则表达式的搜索函数中的问题,java,regex,Java,Regex,我试图用正则表达式在句子中加粗搜索词 String sentence = “help me subString in regexhelp. “ String searchWord=”help”; sentence.replaceAll("(^|\\s)(" + "(?i)" + searchWord + ")(\\s|$)", "$1<b>$2</b>$3"); String-sense=“帮助我在regexhelp中创建子字符串。” String searchWo
String sentence = “help me subString in regexhelp. “
String searchWord=”help”;
sentence.replaceAll("(^|\\s)(" + "(?i)" + searchWord + ")(\\s|$)", "$1<b>$2</b>$3");
String-sense=“帮助我在regexhelp中创建子字符串。”
String searchWord=“help”;
句子.replaceAll(“(^ |\\s”)(“+”(?i)“+搜索词+”(\\s |$)”,“$1$2$3”);
输出:帮助我在regexhelp中创建子字符串
预期输出:regexhelp中的help me子字符串
我想加粗所有匹配的字符串,无论是字符串还是子字符串
(help)
还是你的情况
"("+"(?i)"+searchWord+")"
只需尝试此操作并替换为$1
。请参阅演示
在这种情况下,您需要从正则表达式中删除前面的
(^ |\\s)(
和后面的”(\\s |$)“
模式,因为当前正则表达式只有在前面是行锚点或空格的开始,后面是行锚点或空格的结束时才会与字符串help
匹配。为了匹配子字符串help
,您需要从正则表达式中删除这些模式
String sentence = "help me subString in regexhelp. ";
String searchWord = "help";
System.out.println(sentence.replaceAll("(?i)(" + searchWord + ")", "<b>$1</b>"));
String语句=“帮助我在regexhelp中创建子字符串。”;
String searchWord=“help”;
System.out.println(句子.replaceAll(“(?i)(“+searchWord+”),“$1”);
输出:
<b>help</b> me subString in regex<b>help</b>.
帮助我在regexhelp中创建子字符串。