2016-03-19 22 views
1

私は例のようになります...などのファイルから文字列に読んでいます:Javaの文字列操作条件付きでReplaceAll

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

を私は条件付きreplaceAll、例えばだろうどのように単語がUPで終わらない限り、末尾のすべての単語をPに置き換えてください。

私は言葉の終わりにUための一例に基づいて試してみました。この何:

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

これは私がしたくない場合はどう... http://stackoverflow.com/questions/35835596/java-string-manipulation-replaceall – Hedgebox

答えて

0

あなたの式は次のとおりです。私は、文字列sに変更することが期待される上

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

ザ・かなり近い:Pが既に一致しているため、UPではなく、前の文字がUではないことを確認するだけです。

(?<!U)P\b 

U文字が前に付いていない限り、これは単語境界にある単一の文字Pと一致します。

Demo.

+0

で見つかったものにフォローアップの質問ですOUPで終わったら変更しますか? – Hedgebox

+0

@Hedgebox次に、 '(?<!OU)' - つまり、 'OU'を前に付けない限り' P'を使用します。 – dasblinkenlight

+0

Tks。あなたが私に指すことができる例での文字列操作に関する良いチュートリアルはありますか? – Hedgebox