0

正規表現を使用して、大文字と小文字を無視して、文字列に 8 桁の英数字を含む単語があるかどうかを確認したかった (つまり、2HJS1289 と 2hjs1289 が一致する必要がある)。私は preg を使用してこれを行うことができることを知っています。これまでのところ、これがあります。

preg_match('/[A-Za-z0-9]/i', $string)

ただし、8桁/文字スキームのみに制限する方法についてはわかりません。

4

3 に答える 3

2

正確に 8 文字の単語の場合、単語境界を使用する必要があります。\b

preg_match('/\b[A-Z\d]{8}\b/i', $string)
于 2013-09-13T01:55:27.487 に答える
1

試す

preg_match('/\b([A-Z0-9]{8})\b/i', $string)

{8} は正確に 8 回一致します。実際の一致を抽出する必要がある場合に備えて、キャプチャ グループ (括弧) を追加しました。

{min,max} を使用して、最小時間と最大時間の間で繰り返されるパターンに一致させることもできます (包括的だと思います)。または、パラメータの 1 つを省略して、自由に設定することもできます。例: {min,} は少なくとも min 回に一致します

于 2013-09-13T01:09:30.990 に答える
0

[a-zA-Z0-9] - 大文字または小文字または数字に一致します

{8} - 前のトークンの 8 に一致するように指定します

一緒に置く:

 preg_match('/([A-Za-z0-9]{8})/i', $string)

于 2013-09-13T01:09:58.013 に答える