Java 用重音符号替换所有

Java replaceAll with accents

基本上我有这样一个字符串:

"orom asd örom asddfkdjk öröm lkkllkl Örom oRÖM"

我想在其中搜索"orom"这个词,我需要取回这个字符串:

"<font color='#ff0000'>orom</font> asd <font color='#ff0000'>örom</font> asddfkdjk <font color='#ff0000'>öröm</font> lkkllkl <font color='#ff0000'>Örom</font> <font color='#ff0000'>oRÖM</font>"

如何使用简单的 replaceAll 和正则表达式来做到这一点?

(O|o|ö|Ö)(r|R)(O|o|ö|Ö)(m|M)

应该适用于初始正则表达式,然后将其替换为以下内容:
<font color='#ff0000'>$&</font>
这是因为 $& 代表匹配的文本,所以它将匹配的文本包含在 $& 周围的标签中。

String str = "orom asd örom asddfkdjk öröm lkkllkl Örom oRÖM";
System.out.println(str.replaceAll("([oOöÖ][rR][oOöÖ][mM])", "<font color='#ff0000'></font>"));    

这应该对您有用,并为您提供以下信息。

<font color='#ff0000'>orom</font> asd <font color='#ff0000'>örom</font> asddfkdjk <font color='#ff0000'>öröm</font> lkkllkl <font color='#ff0000'>Örom</font> <font color='#ff0000'>oRÖM</font>

查找字符串的正则表达式类似于 (o|O|ö|Ö)(r|R)(o|O|ö|Ö)(m|M)