2016-11-02 3 views
1

文字で囲まれていないすべてのアポストロフィを空白に置き換えようとしていました。 it'sのような場合、アポストロフィは置き換えられません。JavaのStringからアポストロフィを削除しようとしました

str.replaceAll("[^a-zA-Z](')", " ") 
    .replaceAll("(')[^a-zA-Z]", " "); 

は、しかし、動作しない可能性がまだいくつかの例があった、と私はまた、それを行うために、よりエレガントな方法があるはずと信じ:

私はこれを試してみました。誰かが私を助けてくれますか?

+1

残念ながら、あなたがしていることは、あなたがしてはいけないいくつかのアポストロフィを削除します。たとえば、「ol」や「horses」のような言葉で。 – biziclop

+0

@biziclopもっと具体的に教えてください。 'ol 'と' horses'の後ろに手紙がなければ、これらのアポストロフィーは取り除かれるはずです。 –

+2

@WangNick [Apostrophe rules](http://www.grammarbook.com/punctuation/apostro.asp)を見てください。単語の最後に実際にアポストロフィが正しく使用されていることに注目してください。 – imtheman

答えて

1

正規表現:^'+|'+(?!\S)(フラグ:G、M)

は、入力の開始時にアポストロフィを一致。後ろに空白文字以外のすべてのアポストロフィに一致します。 +は、可能であれば、前のトークン(')を繰り返すことができます。

アポストロフィの例がありますが、これは置き換えられてはいけませんが、コメントに残しておけば、私が修正できるかどうかがわかります。

+0

'' a '' '' '' '' 'を試した場合、動作しませんでした –

関連する問題