1

次のステートメントが示すように、1 つ以上の数字とそれに続くスペースで始まる文字列に一致します。これが 1 ではなく 0 になる理由を教えてください。
ただし、単純に^を削除すると 1 が出力されます。ご存知のとおり、^は文字列の先頭に一致しますが、使い方が間違っていませんか?
前もって感謝します。

SELECT "345 boxberry ave " REGEXP '^\d*[[.space.]][[:<:]]b';

[編集] 基本的に、「b」で始まる通りの名前に一致させたいと考えています。

4

2 に答える 2

1

簡単な方法であなたはこのようにすることができます:

 SELECT "345 boxberry ave " REGEXP '^[0-9]*[ ]+b.*'; //for begin with zero or more digits than one space and begin with character b 

 SELECT "345 boxberry ave " REGEXP '^[0-9]+[ ]+b.*'; //for begin with one or more digits

mysqlでは\d、\wなどの略語を使用できません。

于 2013-01-19T09:01:24.143 に答える
1

に置き換え\dます[[:digit:]]:

SELECT "345 boxberry ave " REGEXP '^[[:digit:]]*[[.space.]][[:<:]]b';

*また、は 0 個以上の a 文字の任意のシーケンスに一致し、1 つ以上の a 文字の任意のシーケンスに一致することにも注意してください+。要件についてはわかりませんが+、数字が必要な場合は代わりに使用する必要があるかもしれません。

于 2013-01-19T08:57:14.223 に答える