Java字符串操作条件replaceAll

Java字符串操作条件replaceAll,java,conditional,replaceall,Java,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. 您的表达式非常接近:

我从一个文件中读取字符串,例如:

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
字符


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

(?<!U)P\b
(?
这与单词边界处的单个字符
p
匹配,除非前面有
U
字符


这是在…找到的问题的后续问题这是在…找到的问题的后续问题如果我不想更改以OUP结尾怎么办?@Hedgebox然后使用
(?-即
P
,除非前面有
OU
.Tks。有关于字符串操作的好教程和例子吗?@Hedgebox我保留-它非常详细地讨论了正则表达式。如果我不想更改,如果它以OUP结尾怎么办?@Hedgebox,那么您使用
(?-即
P
除非前面有
OU
.Tks。是否有一个关于字符串操作的好教程以及您可以向我指出的示例?@Hedgebox我保留了-它非常详细地讨论了正则表达式。