アップロードされたときにファイルの内容を検証しようとしていますが、Unicodeエンコーディングに固執しています。 ASCII範囲にないUnicode特殊文字を探すのは興味がありません。ファイルの内容に\ u0046のような少なくとも1つのUnicodeパターンが含まれているかどうかを調べようとしています。ユニコードパターンの正規表現のための正規表現
たとえば、 'script'という単語を含むファイルは除外しますが、ファイルにこの単語がUnicodeで書かれているとどうなりますか?確かに、Javaはコンテンツを読むときにそれを通常の文字列にデコードしますが、これに頼ることができない場合はどうなりますか?
私はインターネットで検索している限り、\ u0046のように書かれたU + 0046のようなUnicode文字を見たことがあります。これに基づいて、私は次の正規表現を書いた:
(\\u|U\+)....
これは、\ uまたはU +に続いて4文字を意味する。このパターンは私が望むものを実現しますが、Unicode文字を書く他の方法があるのだろうかと思います。それは常に\ uまたはU +ですか? \ uまたはU +の後ろに4文字以上または以下にすることはできますか?
おかげ
達成したいことがわかりません。例えば、 ' 'のようなXML文字エスケープや、文字をエスケープするための無数の方法があります。 – Henry
私は文字列内のUnicode文字を検索する必要がありますが、Unicodeコードが意味するものではありません。たとえば、U + 0061は "a"文字ですが、私は文字自体と一致させたくありませんが、Unicodeシーケンス(コード)の表示にします。ですから、ファイルの内容にU + 0061や\ u0061のようなシーケンスがあれば、ファイルをブロックする必要があります。だから私はこれのためのパターンを作成できるかどうかを知りたい。 –
ステップに戻ります。危険なことは、実際のコンテンツよりもファイルのタイプ(後でどのように使用するか)に大きく依存します。例えば、U + 0046はほとんどの文脈において無害です。したがって、この検証で達成したいことは興味深いです。あなたはどのファイルをチェックしますか? – Henry