2016-10-03 10 views
1

次の正規表現を使用しようとしています。Regexでエスケープされる文字

^(?=.{8,16}$)(([a-zA-Z0-9])\\2?(?!\\2))(?=(.*[a-zA-Z]){1,})(?=(.*[\\d]){1,})|(?=(.*[\\W])(?=(.*[[]{}()<>.,;:\'\")){1,}])(?!.*\\s).{8,16}$ 

しかし、NSInternalInconsistencyExceptionエラーが発生します。

理由:「正規表現マッチングを行うことはできません、理由:オープンできないパターンU_REGEX_MISSING_CLOSE_BRACKET(文字列AA、パターン^(= {8,16} $)(([-ZA-Z0-?。 (1)、(2)、(3)、(8) {?}。}){{!}。* \ s){8} {0} {0} {0} 、16} $、ケース0、キヤノン0「)

私はエスケープする必要があり、文字?

+0

パターンでどのような条件でコードを作成しようとしていますか教えてください。パターンはあなたが思っていることをしないようです。 –

+0

@WiktorStribiżew:_アルファベット、数字、および/またはスペースを含まない特殊文字の組み合わせを含める必要があります。 3つの類似した文字の連続反復はありません。 パスワードはユーザー名と同じであってはなりません。 例username rajsinghとパスワードはrajsinghです。 登録中にエラーが発生するはずです。 しかし、ユーザ名rajsinghとパスワードはRAJSINGHが有効なエントリです._ –

+0

パスワードをユーザ名*と同じにするべきではないかと疑いがあります。パターンに変数を指定する必要があります。ユーザー名に特殊文字を含めることができる場合は、その文字をエスケープする必要があります。 (a-zA-Z)*([a-zA-Z]))は、 (?= \\ D * \\ d)(?=。* [\\ [\\] {}()<>、;: '\ "])\\ S {8,16} $" '変数として来る文字列を禁止するには、 ''(?! "+ old_user_name +" $ ")を'^'の後に追加してください(エスケープする必要があります)。 –

答えて

0

はあなたがどのようなものです。私はそれを適切にエスケープしていないためであると考えています先読みグループで定量的な{1,}を使用することはできません。

+0

'{1、}'は意味がありませんが、私が信じる主な問題ではありません。 –

+0

@WiktorStribiżew:そうです。私がそれを取り除いても、私は同じエラーが発生します。 –

関連する問題