2017-05-10 35 views
1

Groovyで正規表現を使用しています。正規表現:少なくとも1文字、少なくとも1つの数字、特定の長さ、含まない

私は以下の規則で正規表現を定式化しようとしています。

  1. は正確に17文字でなければなりません
  2. だけ含まれている必要があります文字と数字
  3. 少なくとも1アルファと1文字の数字が含まれている必要があります
  4. 文字「I」、「O」や「Qを含めることはできません'(大文字または小文字)

私はほとんどそこにいると思います。以下の正規表現は要件1,2,3を処理しているようです。

def pttrnVin = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+){17}$/ 

要件4を追加しようとしましたが、成功しませんでした。誰かが私を助けてくれますか?

おかげ

+0

変更を' az' a-hj-npr-z' *(大文字で大文字小文字を区別しないように大文字と小文字を区別しないフラグを使用する)*および無意味な '+'限定子とキャプチャグループを削除する。 –

答えて

1
  1. は正確に17文字でなければなりません。 (以下に扱われます)
  2. 文字と数字のみが必要です。
  3. 少なくとも1つのアルファベットと1つの数字を含める必要があります。 (?=.*[0-9])(?=[a-z])
  4. 文字 'I'、 'O' または([a-hj-npr-z0-9]{17})

だから、 'Q'(大文字または小文字)含めることはできません: `へ

/^(?=.*[0-9])(?=.*[a-zA-Z])([a-hj-npr-z0-9]{17})$/i 

Demo

+0

それはうまくいかないようです。私はあなたのテストを '1234QDeEfFgGhHiII'を使用するように変更し、1234qDeEfFgGhHiIIも変更しました。それでも – Richie

+0

と一致します。もう一度やり直してください。更新しました... – dawg

関連する問題