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中创建子字符串。