Masalah: ungkapan biasa MySQL (penghad tidak berfungsi)
P粉684720851
P粉684720851 2024-04-02 23:35:21
0
1
386

Nota Mod: Jangan padam/jangan tutup Saya bertanya soalan ini sebelum ini dan pentadbir menutupnya kerana mereka fikir ia sama dengan soalan pengguna lain. Saya melihat pada utas yang mereka cadangkan kepada saya dan ia tidak mengandungi jenis isu berangka yang saya hadapi. Bagaimanakah urutan ini sepadan dengan keseluruhan rentetan dengan regex?


Soalan/soalan saya: REGEXP mengembalikan positif palsu.

SELECT '123456' REGEXP '[0-9]{1,4}' AS Test;

Menurut bacaan saya, bahagian pendakap kerinting {1,4} bermakna ia muncul sekurang-kurangnya 1 kali dan paling banyak 4 kali. Tetapi daripada perkara di atas, julat [0-9] muncul lebih kerap daripada 4, tetapi pertanyaan mengembalikan 1 dan bukannya 0. Saya telah melampirkan tangkapan skrin. Apa yang saya hilang? Terima kasih.

Tangkapan skrin contoh dalam Workbench

P粉684720851
P粉684720851

membalas semua(1)
P粉242535777
SELECT '123456' REGEXP '^[0-9]{1,4}$' AS Test;

Dengan "berlabuh" anda meminta untuk memadankan keseluruhan rentetan. Operasi di atas akan gagal kerana had 4.

SELECT '123456' REGEXP '^[0-9]{1,}$' AS Test;

Lulus kerana membenarkan sekurang-kurangnya digit.

SELECT 'zzz123456' REGEXP '^[0-9]{1,}$' AS Test; -- Fail
SELECT '123456' REGEXP '^[0-9]*$' AS Test;  -- pass
SELECT '' REGEXP '^[0-9]{1,}$' AS Test;  -- fail (too short)
SELECT '' REGEXP '^[0-9]+$' AS Test;  -- same as {1,}
SELECT 'abc123456def' REGEXP '[0-9]{1,4}' AS Test; -- pass (no anchor)
SELECT 'abc123456def' REGEXP '^[^0-9]+[0-9]{1,4}[^0-9]+$' AS Test;  -- fail
SELECT 'abc123456def' REGEXP '[^0-9]*[0-9]+[^0-9]*' AS Test;  -- pass

Dua yang terakhir termasuk [^0-9], yang bermaksud "apa-apa nombor kecuali 0-9.

Arahan terperinci^

  • Pada permulaan dalam ungkapan biasa, ^ 将处理“锚定”在开头: REGEXP "^x" 表示“以 x 开头”;如果“x”位于字符串中的任意位置,则 REGEXP "x" berjaya.
  • Pada permulaan "charset", ^ 表示“不”: REGEXP "x[0-9]" 查找 x 后紧跟一个数字' REGEXP "x[^0-9]" cari x bukan nombor serta-merta mengikutinya.
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan