トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

5-13 文字列のチェックその4

正規表現パズル

・アルファベットの文字数が4以上8以下
・数字の文字数が1以上7以下
・文字数が4以上8以下

の行を検索する。

検索前


検索後


対象データ

3434HERE
EYRERY787
DHFD67SDSD
ERERT
23232
AAA111B
AA11AA11
AA11AA11XYZ


正規表現

^(?=([^a-zA-Z]*[a-zA-Z]){4,8}[^a-zA-Z]*$)
 (?=([^0-9]*[0-9]){1,7}[^0-9]*$)
 (?=.{4,8}$).*$


解説

Oracleの正規表現でのパスワードチェックが元ネタです。
regexp_like(英語)

肯定先読みを連続して使い、条件の論理積を求めてます。