ポンド#修飾子を使用した正規表現があります。
\#正規表現ではどういう意味ですか?#正規表現の意味は何ですか?Javaがこれらの無効な修飾子を単に無視している可能性はありますか?
ポンド#修飾子を使用した正規表現があります。
\#正規表現ではどういう意味ですか?#正規表現の意味は何ですか?Javaがこれらの無効な修飾子を単に無視している可能性はありますか?
\#有効な正規表現修飾子ではありません。Javaの正規表現で重要な意味を持つ場合、技術的には#文字をエスケープする方法になります。#そうでないため、Javaはこの無効性を無視し#、エラーをスローする代わりにそれを読み取るだけです。
私はちょうどこれと同じ問題を抱えていました。#すべての「古いコード」をからに変更するときに、前のプログラマーが「見逃した」ことが判明しました|。これは単純な間違いでした。アプリ内の他のすべてのコードをチェックしてこれを見つけましたが、他の#記号は見つかりませんでしたが、コードの多くの同様の領域が|含まれています。そして、はこのコード|のすぐ隣にありました。#そのため、誰かが古い正規表現を新しい正規表現に交換して「逃した」のです。
ご想像のとおり、それは単なる間違いです。
確かに、私は実行しました:
String quote = Pattern.quote("_#_");
出力は次のとおりです。
"\Q_#_\E"
したがって、明らかに、ポンド記号( "#")はJava正規表現の特殊文字ではありません。