質問するログイン新規登録

回答編集履歴

2

最短マッチによらず結果は同じっぽい

2019/10/19 14:44

投稿

ikadzuchi
ikadzuchi

スコア3047

answer CHANGED
@@ -1,9 +1,13 @@
1
1
  英字・数字の先読み部分を2回にすればいいのですから、
2
2
  単純に2回書けば
3
3
  ^(?=.*?[A-Za-z].*?[A-Za-z])(?=.*?[0-9].*?[0-9])[A-Za-z0-9]{8,16}$
4
+ となります。
5
+ ここで、先読み部分で最短マッチさせてもさせなくても結果に変わりはないので、
6
+ ^(?=.*[A-Za-z].*[A-Za-z])(?=.*[0-9].*[0-9])[A-Za-z0-9]{8,16}$
4
- なります。(otnさんの回答)
7
+ できそうです。(otnさんの回答)
8
+ 最短マッチの有無で実行速度に違いが出そうな気もしますが、詳しくないので分かりません。
5
9
  また、回数指定で
6
- ^(?=(.*?[A-Za-z]){2,2})(?=(.*?[0-9]){2,2})[A-Za-z0-9]{8,16}$
10
+ ^(?=(.*[A-Za-z]){2,2})(?=(.*[0-9]){2,2})[A-Za-z0-9]{8,16}$
7
11
  と書いても良さそうです。
8
12
 
9
13
  なお、2つに分けたほうが素直だと私も思います。

1

既に同じ内容があったことに気づかなかったので編集

2019/10/19 14:44

投稿

ikadzuchi
ikadzuchi

スコア3047

answer CHANGED
@@ -1,9 +1,9 @@
1
1
  英字・数字の先読み部分を2回にすればいいのですから、
2
- 単純に2回書いた
2
+ 単純に2回書けば
3
3
  ^(?=.*?[A-Za-z].*?[A-Za-z])(?=.*?[0-9].*?[0-9])[A-Za-z0-9]{8,16}$
4
- や、
4
+ となります。(otnさんの回答)
5
- 回数指定した
5
+ また、回数指定
6
6
  ^(?=(.*?[A-Za-z]){2,2})(?=(.*?[0-9]){2,2})[A-Za-z0-9]{8,16}$
7
- でできそうです。
7
+ と書いても良さそうです。
8
8
 
9
9
  なお、2つに分けたほうが素直だと私も思います。