3

私はすべてのテストで正常に動作するこの正規表現を持っていますが、グーグルで調べてこれのバリエーションを試した例にもかかわらず、MySQL で動作させることはできません:

^[A-Za-z]{2,4}-\d{3}-\d{2}$

AA-001-01Javascript では、を介して正しく一致するZZZZ-999-99ため、正規表現にさまざまな調整を加えて MySQL で試しましたが、すべてうまくいきませんでした。

SELECT * FROM products WHERE sku REGEXP '^[A-Za-z]{2,4}-\d{3}-\d{2}$'

sku(テーブルには、上記のサンプルに一致する数千のレコードが含まれています)

私が知る限り、Mysql Regex のサポートは限られていますが、これは正しく動作しないはずですか、それとも Mysql で動作するための構文に関する考慮事項が他にありますか?

4

1 に答える 1

7

数字を一致させるには、[0-9]またはを使用する必要があります[[:digit:]]

これを試して:

SELECT col1, col2, ..., coln
FROM products
WHERE sku REGEXP '^[A-Za-z]{2,4}-[0-9]{3}-[0-9]{2}$'

オンラインで動作することを確認してください:sqlfiddle

のマニュアルを参照してくださいREGEXP

于 2012-08-08T22:13:03.357 に答える