正規表現道場 Part2at PHP
正規表現道場 Part2 - 暇つぶし2ch4:nobodyさん
12/10/15 10:43:51.98
>>2
正規表現最新リンク集2005
URLリンク(web.archive.org)

個人名載ってるしこのまま外しちゃってもいいかもしれない

5:nobodyさん
12/10/19 12:38:26.99 ZQDqri43
過疎スレ状態になっているっぽいですが質問宜しいでしょうか?

6:nobodyさん
12/10/19 12:44:45.04
>>1

7:nobodyさん
12/10/19 19:53:20.37
質問は?

8:nobodyさん
12/10/30 16:10:01.92
>>5の人とは別人ですが質問がありますのでお願いします

拒否したいワード例
・ばか
・ばっかやろー
・ばーか

掲示板の拒否ワード機能を使って上のような言葉を
 ^(ばか|ばっか|ばーか)
このようにまとめているのですが、
もっと効率よくまとめられるような気がしています

 ^ば(0または任意の1文字)か
以上のように、
まとめることは可能でしょうか?

9:nobodyさん
12/10/30 17:54:51.44
ば.?か

ばいか(売価)とかも入るけどねー

10:nobodyさん
12/10/30 21:28:35.04
~ばかり
ばっかり
ばんから

11:nobodyさん
12/10/31 08:02:36.23
ばんかい
バイカム

こういうのは>>8の指定の方が間違いがないね

12:8
12/10/31 12:31:50.64
まさに、>>9のようにまとめるられる書式を知りたかったのです!が…
皆さんご指摘のことを読むと確かにおっしゃるとおりですよねー

ば.?か、のような書式で運用できるかできないか、
掲示板のログとにらめっこしてみることにします

ともあれ、お答えくださった皆さん、とても参考になり助かりました
ありがとうございました

13:nobodyさん
13/01/29 08:17:24.91
せめて同じ文字はまとめるか
^(ば(か|っか|ーか))

14:nobodyさん
13/02/10 11:51:32.02 m9q+FHWZ
パスワードの登録で
半角アルファベットと半角数字の組み合わせで8文字以上
という条件を考えてるんですが、以下じゃダメですよね?

preg_match('/^[a-zA-z0-9]{8,}$/', $s);

アルファベットと数字の組み合わせ(アルファベットも数字もどちらもある)とするには
どうしたら良いでしょうか?

15:nobodyさん
13/02/10 12:46:13.25
>>14みたいな正規表現のちょっとしたテクニック集とかどっかにまとまってないかね?

16:nobodyさん
13/02/13 23:30:20.10
/^(?=(.*\d[a-zA-Z].*)|(.*[a-zA-Z]\d.*))\w{8,}$/

数字英字 もしくは 英字数字という並びが存在する英数字8文字以上

17:nobodyさん
13/02/14 00:13:02.40
>>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さん
13/03/04 01:35:07.40
>>13
これはひどい

19:nobodyさん
13/03/09 22:12:30.87
^([a-z]|[A-Z]|[0-9]){8,}$

はダメ?

20:nobodyさん
13/03/09 23:24:50.86
ダメ

21:nobodyさん
13/03/10 23:50:57.56
>>19
大文字と小文字を区別したいってことなら

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9]{8,}$

でおk


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch