2016-10-19 5 views
1

Java文字列でパターンを見つけて別の文字列に置き換える必要があります。正規表現パターンを置換する

私は、文字列

の1- Loremのイプサムの嘆きの2種類がありますが、AMETそれに座ります。整数pos laciniA。 2. Lorem ipsum dolorelit。 Curabitur pretium maL。

私がする必要があるのは、 "。"その前に番号がなく、 ";"で置き換えられます。

str.replaceAll( '\。'、 '\\;')のように正規表現が見つかりました。

このパターンの問題は、文字列 "2"が見つかったときです。それは "2"だけ変化します。

もう1つの解決策はstr.replaceAll( '[a-zAz] \。'、 '\\;')です。 "。"の前の最後の文字を置き換えます。

誰かがこれで助けてくれますか?

+0

はあなたが必要とする意味するかと一致する;(https://でregex101 [ '' str.replaceAll( "" "?!(<\\ d)の\\。")] .com/r/xbyV8m/1)? –

答えて

1

私がする必要があるのは、 "。"その前に番号がなく、 ";"で置き換えられます。

あなたは否定後読みを活用することがあります。

String result = str.replaceAll("(?<!\\d)\\.", ";"); 

regex demo

詳細参照してください:

  • (?<!\d)は - 現在の前に数字がある場合は試合を失敗場所
  • \.は - 文字通り.