0

Mysql db からデータを取得するための sql ステートメントを作成しました。myId が 3 つの英字と 4 桁の例で始まるデータを選択したいと考えていました。ABC1234K1D2

myId REGEXP '^[A-Z]{3}/d{4}' 

しかし、それは私に空の結果を与えます(データはDBで利用可能です)。誰かが私を正しい方法に向けることができますか?

4

5 に答える 5

3

ほとんどの正規表現のバリエーションでは、答えは次のようになり/dます。数字に一致するものが欲しいと思います。/d\d

ただし、MySQLの正規表現の実装は多少制限されています(ドキュメントを参照)。

\d他の数字のように文字セットへのショートカットはありません。

名前付き文字セット([[:digit:]])を使用するか、単に。を使用する必要があります[0-9]

于 2013-01-29T10:58:29.070 に答える
2

これを試してください:

[A-Z]{3}[0-9]{4}

文字の大文字と小文字を区別しない場合。これを試して :

[a-zA-Z]{3}[0-9]{4}
于 2013-01-29T10:59:43.953 に答える
1

まず、通常の正規表現では、数字に一致させる\dには、代わりに/d(これにより、一致の/後に が続きますd) を使用する必要があります。

それから、私は気づいていませんでしたが、MySQL では\d(およびその他のようなもの\wは) 利用できないようです。ドキュメントには、受け入れられる空間文字がリストされていますが、それらのジェネリック クラスは表示されません。かなり短い[:digit:]場合でも、代わりに使用できます[0-9];)

于 2013-01-29T11:11:47.857 に答える
0

/dに置き換えるだけで問題ありません\d
最終的な正規表現:^[A-Z]{3}\d{4}

于 2013-01-29T11:00:41.597 に答える
0

次のパターンを使用できます。

^[a-zA-Z]{3}\d{4}
于 2013-01-29T11:09:20.540 に答える