code_number を抽出する正規表現が必要です。要件は次のとおりです。
- 長さは 5 文字である必要があります
- どの位置にも少なくとも 1 つの数字が含まれている必要があります
- どの位置にも少なくとも 1 つの文字が含まれている必要があります
理想的には、これは 1 つの正規表現のみを使用して行う必要があります。
次の正規表現では、私はほとんどそこにいます。問題は、この正規表現が3番目の要件に準拠していないこと11111
です。少なくとも1文字がないため、一致する必要はありません
$regex = '~\b(?=[a-zA-Z0-9]{5}\b)[a-zA-Z0-9]*\d[a-zA-Z0-9]*~';
$sms = ' 11111 keyrod 07:30 02.10.2013';
preg_match($regex, $sms, $matches);
print_r($matches); // print array([0] => 11111)
この正規表現を変更して、数字のみの文字列と一致しないようにするにはどうすればよいですか?