14

文字列が二重引用符文字 ( ") で始まり、二重引用符文字で終わるかどうかを確認するには、正規表現を使用する必要があります。

問題は、混乱を招くため、二重引用符を使用できないことです。正規表現または一般的な文字列で二重引用符文字を表す他の方法はありますか?"

String s = """;    // ?
4

2 に答える 2

31

まず、二重引用符文字は正規表現では特別なものではありません。これは単なる別の文字であるため、正規表現の観点からエスケープする必要はありません。

ただし、Java は文字列定数を区切るために二重引用符を使用するため、Javaで二重引用符を含む文字列を作成する場合は、二重引用符をエスケープする必要があります。

このコードは、文字列が一致するかどうかをテストします。

if (str.matches("\".*\"")) {
    // this string starts and end with a double quote
}

入力マーカーの開始終了(^および$) を正規表現に追加する必要がないことに注意してください。これは、入力全体が trueをmatches()返すために一致する必要があるためです。^$

于 2013-05-26T23:29:24.287 に答える
11

"の前にバックスラッシュを使用する必要があります。\"

ここのドキュメントから、それを見ることができます

バックスラッシュ ( \ ) が前にある文字はエスケープ シーケンスであり、コンパイラにとって特別な意味を持ちます。

" (二重引用符) はエスケープ シーケンスです。

print ステートメントでエスケープ シーケンスが検出されると、コンパイラはそれに応じて解釈します。たとえば、引用符の中に引用符を入れたい場合は、引用符の内側にエスケープ シーケンス \" を使用する必要があります。

彼女は「こんにちは!」と言いました。私に。

あなたが書くだろう

System.out.println("彼女は私に「こんにちは!」と言った.");

于 2013-05-26T17:03:25.887 に答える