1)mysql> SELECT 'aXbc' REGEXP '[a-dXYZ]'; -> 1
2)mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]$'; -> 0
3)mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]?$'; -> 0 // 0 or 1
4)mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]+$'; -> 1 // 1 or more
5)mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]*$'; -> 1 //0 or more
私は2番目の比較について混乱しています。 [a-dXYZ]で始まり[a-dXYZ]で終わる文字列ではないのでしょうか?この比較はなぜ戻りますか? (正規表現)
つまり、[a-dXYZ]で始まり[a-dXYZ]で終わる文字列が長さ1ですか?これが当てはまる場合、 '^ .... $'(左端と右端)のような^と$記号を使用すると、すべての部分文字列が削除され、文字列全体のみが分析されます。
注:これはどうすれば問題にすることができますか。私は因果関係を理解したい。 a
、b
、c
、d
、X
、Y
、Z
と最初の文字と最後です:
^[-dXYZ] $それが全体として1つの長さの文字列を探し、サブストリングは考慮されませんか? –
1文字の入力と一致します。 – andlrc
私は '^ [B](。*)(^ [K] $)(。*)[B] $'はBAAKAABでtrueを返すなら、文字列の真ん中で^ $記号を使用することができます。 (oracle sql、mysql、java) –