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