私は、これらの仕様に従ったamazonのバリデーターhttp://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keysを作成したかったのです。命名オブジェクトの正規表現検証を作成する
そして私はと私のパターンを作成しました:
private static Pattern objectKeyNamePtrn = Pattern.compile("^[a-z0-9_-!.*'()]{6,30}$");
しかし、私はエラーを取得しています:
Exception in thread "main" java.lang.ExceptionInInitializerError Caused by: java.util.regex.PatternSyntaxException: Illegal character range near index 11 ^[a-z0-9_-!.*'()]{6,30}$
私は '\' でエスケープ試みたが、うまくいきませんでした。
また、キーの名前は、UTF-8エンコーディングが最大1024バイトの長さのUnicode文字のシーケンスです。
正規表現を使用して確認する必要がありますか?
ザッツ正しい:文字列が1024バイト以下である場合は、この質問を参照、確認します。私はそれを避けましたが、それは "_ \\ - !" Javaの場合ありがとう –