15

ポンド#修飾子を使用した正規表現があります。

\#正規表現ではどういう意味ですか?#正規表現の意味は何ですか?Javaがこれらの無効な修飾子を単に無視している可能性はありますか?

4

3 に答える 3

15

\#有効な正規表現修飾子ではありません。Javaの正規表現で重要な意味を持つ場合、技術的には#文字をエスケープする方法になります。#そうでないため、Javaはこの無効性を無視し#、エラーをスローする代わりにそれを読み取るだけです。

于 2012-08-31T18:11:42.280 に答える
2

私はちょうどこれと同じ問題を抱えていました。#すべての「古いコード」をからに変更するときに、前のプログラマーが「見逃した」ことが判明しました|。これは単純な間違いでした。アプリ内の他のすべてのコードをチェックしてこれを見つけましたが、他の#記号は見つかりませんでしたが、コードの多くの同様の領域が|含まれています。そして、はこのコード|のすぐ隣にありました。#そのため、誰かが古い正規表現を新しい正規表現に交換して「逃した」のです。

于 2013-09-07T03:40:11.523 に答える
1

ご想像のとおり、それは単なる間違いです。

確かに、私は実行しました:

String quote = Pattern.quote("_#_");

出力は次のとおりです。

"\Q_#_\E"

したがって、明らかに、ポンド記号( "#")はJava正規表現の特殊文字ではありません。

参照:Pattern.quote()

于 2012-08-31T18:21:52.303 に答える