0

文字列で一致する必要があるいくつかの引数の正規表現が必要です。

ここにあります...

  1. 文字列は最小 8 文字から最大 20 文字まで存在します。

  2. この文字列のこれらの文字は、アルファベットまたは特殊文字の文字である可能性があります -- つまり、空白を除くすべての文字

  3. 完全な文字列には、少なくとも 1 つの数字が必要です。

  4. 文字列は数字またはアンダースコアで始めることはできません

  5. 文字列の最後の 2 文字は同一である必要があります. ただし、最後の --同一文字が大文字か非大文字か (大文字と小文字を区別しない) は問題ではありません

すべて一致する必要があります:

+234567899
a_1de*Gg
xy1Me*__
!41deF_hij2lMnopq3ss
C234567890123$^67800
*5555555
sDF564zer""
!!!!!!!!!4!!!!!!!!!!
abcdefghijklmnopq9ss

一致しない可能性があります:

8 文字未満または 20 文字以上にすることはできません:

a_1+Eff
B41def_hIJ2lmnopq3stt

空白を含めることはできません:

A_4 e*gg
b41def_Hij2l nopq3ss

数字またはアンダースコアで始めることはできません: __1+Eff 841DEf_hij2lmnopq3stt

2 つの異なる文字で終わることはできません:

a_1+eFg
b41DEf_hij2lmnopq3st

文字列に数字が含まれていないことはできません:

abCDefghijklmnopqrss
abcdef+++dF
!!!!!!!!!!!!!!!!!!!!
------------------------------------------------------

これは私がこれまでに持っているものです.しかし、私はこれについて本当に頭を悩ませています.答えが完全にわからなくても、それは問題ではありません...私はただ正しい方向に進みたいだけです.

([^0-9_])(?=.*\d)(\S{8,20})(?i:[\S])\1
4

2 に答える 2

0

複数の正規表現を使用できる場合は、次を試してください。

\S{8,20}

[^_0-9].*\d.*

.*(?i)(.)\1

1 つでなければならない場合は、これを使用します。

^[^_\s\d](?=.*\d)\S{5,17}(?i)(\S)\1$

(この最後のバグを見つけるのを手伝ってくれた Casmir の功績を称えなければなりません。)

編集:

これは

  1. アンダースコア、スペース、数字以外の任意の 1 文字。

  2. (その後に任意の文字と数字が続く必要があります)

  3. 次に、5 ~ 17 個の非空白文字

  4. 次に (以降、大文字と小文字は区別されません)、空白文字、その後に同じ文字が続きます

于 2013-11-03T21:47:08.903 に答える
0

これを試すことができます:

^[^\s\d_](?=.*\d)\S{5,17}(?i)(\S)\1$
于 2013-11-03T21:51:55.437 に答える