2014-12-03 72 views
0

我嘗試使用正則表達式在一個句子中加粗搜索詞。使用正則表達式的搜索功能中的問題

String sentence = 「help me subString in regexhelp. 「 
String searchWord=」help」; 

sentence.replaceAll("(^|\\s)(" + "(?i)" + searchWord + ")(\\s|$)", "$1<b>$2</b>$3"); 

輸出:幫助我在子串regexhelp。

預期輸出:幫助我在的子正則表達式幫助

我要大膽所有匹配的字符串的天氣是一個字符串或子。

回答

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>")); 

輸出:

<b>help</b> me subString in regex<b>help</b>.