- 1 名前:nobodyさん [2012/09/19(水) 18:58:43.51 ID:bdgNsY2f]
- 【正規表現道場の掟】
・言語不問 ・質問も大歓迎。使用言語を書くのを忘れずに。 正規表現と関係ない話・質問は他スレへどうぞ。 前スレ 正規表現道場 kohada.2ch.net/test/read.cgi/php/1168450843/
- 13 名前:nobodyさん mailto:sage [2013/01/29(火) 08:17:24.91 ID:???]
- せめて同じ文字はまとめるか
^(ば(か|っか|ーか))
- 14 名前:nobodyさん [2013/02/10(日) 11:51:32.02 ID:m9q+FHWZ]
- パスワードの登録で
半角アルファベットと半角数字の組み合わせで8文字以上 という条件を考えてるんですが、以下じゃダメですよね? preg_match('/^[a-zA-z0-9]{8,}$/', $s); アルファベットと数字の組み合わせ(アルファベットも数字もどちらもある)とするには どうしたら良いでしょうか?
- 15 名前:nobodyさん mailto:sage [2013/02/10(日) 12:46:13.25 ID:???]
- >>14みたいな正規表現のちょっとしたテクニック集とかどっかにまとまってないかね?
- 16 名前:nobodyさん mailto:sage [2013/02/13(水) 23:30:20.10 ID:???]
- /^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/
数字英字 もしくは 英字数字という並びが存在する英数字8文字以上
- 17 名前:nobodyさん mailto:sage [2013/02/14(木) 00:13:02.40 ID:???]
- >>16を1回チェックするのと、
>>14と「英字を含む」「数字を含む」の計3回チェックするのとで、どのくらい ここまで書いたところで自分でいろいろ試してみた。 $s = '3066058kczgr9784685fwn874fos847fos8djtkcrzu9q58nzfc'; for($i=0; $i<1000000 && preg_match('/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/', $s); $i++){} //2.3948659897 sec. for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && preg_match('/[a-zA-z]/', $s) && preg_match('/[0-9]/', $s); $i++){} //5.7406949997 sec. for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && !preg_match('/^[0-9]+$/', $s); $i++){} //3.9960801601 sec. for($i=0; $i<1000000 && 8<=strlen($s) && ctype_alnum($s) && !ctype_digit($s); $i++){} //2.2285568714 sec. $s = '1'; for($i=0; $i<1000000 && preg_match('/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/', $s); $i++){} //0.0000748634 sec. for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && preg_match('/[a-zA-z]/', $s) && preg_match('/[0-9]/', $s); $i++){} //0.0000240803 sec. for($i=0; $i<1000000 && preg_match('/^[a-zA-z0-9]{8,}$/', $s) && !preg_match('/^[0-9]+$/', $s); $i++){} //0.0000209808 sec. for($i=0; $i<1000000 && 8<=strlen($s) && ctype_alnum($s) && !ctype_digit($s); $i++){} //0.0000181198 sec. おもしろかった。
- 18 名前:nobodyさん mailto:sage [2013/03/04(月) 01:35:07.40 ID:???]
- >>13
これはひどい
- 19 名前:nobodyさん mailto:sage [2013/03/09(土) 22:12:30.87 ID:???]
- ^([a-z]|[A-Z]|[0-9]){8,}$
はダメ?
- 20 名前:nobodyさん mailto:sage [2013/03/09(土) 23:24:50.86 ID:???]
- ダメ
- 21 名前:nobodyさん mailto:sage [2013/03/10(日) 23:50:57.56 ID:???]
- >>19
大文字と小文字を区別したいってことなら ^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9]{8,}$ でおk
|

|