誰でもわかる!パスワード用の正規表現の読み方
ぞす!げんきちです!\\\\٩( 'ω' )و ////
「いや、誰だよ」って方は、下記リンクを見てやってください。
目次〜
- 半角英字と半角数字それぞれ1文字以上含む8文字以上100文字以下の文字列
- 分解してみました
- 前半部分の^(?=.*?[a-z])(?=.*?\d)
- 後半部分の[a-z\d]{8,100}$/i
- おまけ
半角英字と半角数字それぞれ1文字以上含む8文字以上100文字以下の文字列
メルカリでパスワード用の正規表現をネットからコピペしました。
今後もよくお世話になる表現だと思います。
理解を深める良い機会なので分解して考えてみました。
分解してみました
/ |
^ |
( ~ ) |
?= |
. |
*? |
|
[ ~ ] |
- |
\d |
{min,max} |
$ |
i |
前半部分の^(?=.*?[a-z])(?=.*?\d)
(?=.*?[a-z])
=任意の文字が0文字以上繰り返された後にa-zのいずれか1文字
=文字列のどこかにa-zのいずれかがあること
(?=.*?\d)
=任意の文字が0文字以上繰り返された後に数字1文字
=文字列のどこかに0-9のいずれかがあること
^(?=.*?[a-z])(?=.*?\d)
「a-zのいずれかを含む」かつ「0-9いずれかを含む」文字列 。
つまり「英字と数字が両方1つ以上あるか」の判定を意味しています。
後半部分の[a-z\d]{8,100}$/i
i
「英字大小関わらず」
[a-z\d]
「a-z、0-9のいずれかで構成された」
{8,100}
「8文字以上100文字以下の文字列」を意味しています。
おまけ
メールアドレス用の正規表現(簡易版)です。
\S |
+ |
「困難は分割せよ」って誰か言ってました/(^o^)\
プログラミングはロジックを重ねていけば必ず答えがあるので面白いです。
<一日一新>
キーボードカバーを装着。ゴム感がたまらないです。
<学習進捗>
学習開始からの期間 :77日
今日までの合計時間:768h
今日までに到達すべき目標時間:703h
目標との解離:65h
「10,000時間」まで、
残り・・・「9,235時間!」
以上です。
読んでくれた方々、ありがとうございました!((_ _ (´ω` )ペコ。