Java 字符串操作条件替换全部

Java String Manipulation Conditional replaceAll

我正在从文件中读取字符串...例如:

I JUMP UP HIGH IN THE AIR WITH SOUP TO GET TO YOU.

我将如何执行条件 replaceAll,例如替换单词末尾的所有 P,除非单词以 UP 结尾。

这是我根据单词末尾 U 的示例尝试的:

s = s.replaceAll("(!UP\b)P\b", "PS")

以上我希望将字符串 s 更改为:

I JUMPS UP HIGH IN THE AIR WITH SOUP TO GET TO YOU.

您的表达式非常接近:您只需检查前一个字符不是 U,而不是 UP,因为 P 已经被匹配:

(?<!U)P\b

这匹配单词边界处的单个字符 P,除非它前面有 U 个字符。

Demo.