2016-04-04 17 views
0

不要な文字を削除すること、またはより良い意味で、特定の文字のみを削除することについて質問があります。私はストリングリテラルと呼ばれるものを見つけました。私はそれが私の目標達成にどのように役立つのか理解できません。私は以前これをどこかに見つけましたが、それを使う方法を理解していません。文字列リテラルと不要な文字の削除

文字列リテラル「[^ \のP {アルファ} - ']」アルファベットではない任意の 文字、ダッシュ、またはアポストロフィを一致させるために使用されてもよいです。あなたははありませんが、私は理解していない他のものは、あなたがそれに使用することができます[a-zA-Z]少し似コードある)私は何でReplaceAll(理解 これは便利でReplaceAllを使用して()

を見つけることができますし、より多くのものを見つけるためにどこを探すか。だから、私はかなり引用符で言うことをやりたいだけで、文字といくつかの句読点を保持します。

+0

あなたは正規表現を学ばなければなりません.try googleには –

+1

"文字列リテラル"は引用符の中にあるものです。この特定の文字列リテラルは、_正規表現_または_regex_として使用されます。Googleの "java tutorial regex"では、すべてのコードの意味を知ることができます。または、http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.htmlを参照してください。 – ajb

答えて

0

説明しているプロセスは、という正規表現または短い正規表現です。これは、Javaを含む多くのプログラミング言語で実装されているツールで、1行のコードで文字列を処理することができます。これは、複雑で煩わしいものになります。

詳細はtutorialです。

0

replaceAll()regexesを使用します。

1回の投稿で説明するにはあまりにも多くの説明がありますが、少し説明します。ここで

は正規表現です:[^A-Za-z.?!]

  • []は、文字クラスを意味します。含まれている文字の1つにマッチします(メタ文字によって変更されます)。
  • ^これがcharクラスの最初の文字である場合、NOTを意味するメタ文字です。
  • A-Zは、範囲を示します。これらのASCII/Unicode値の間の値は、
  • と一致します。.,?!はリテラルとして扱われます(他のコンテキストではメタ文字になる可能性があります)。

ので、replaceAll()で引用して置けば正規表現は、アルファベットではないすべてのもの、.?、または!を変更します。


$1は文字通り$1を意味するものではありませんようにreplaceAll()の2番目のパラメータはまた、いくつかの特別な正規表現に関連した文字を受け入れます。

$1を使用する前に、より高度な正規表現のもの(グループをキャプチャする)について学ぶ必要があります。

+0

do replaceAll()に入れると、正規表現を引用符で囲みますか? – DurpBurger

+0

@DurpBurgerはい、文字列でエスケープする必要のある文字をエスケープする必要があります。正規表現にエスケープが必要な場合(つまり、エスケープをエスケープする必要がある場合)には痛みが伴うので、すべてを自動エスケープするオンラインテスターに​​ペーストすることがあります。 – Laurel

関連する問題