簡體   English   中英

Mysql正則表達式搜索數字

[英]Mysql regex search with digit

我將如何在 mysql 中執行以下操作?

SELECT * FROM table WHERE search REGEXP '.+season\d+\s?.+' limit 10;

我想匹配類似的東西:

"hello this is season1 how are you?"

但不是:

"hello this is season1episode1 how are you?

您可以使用以下正則表達式,因為\\d\\s在 MySQL 上不可用。 您可以改用字符類

您可以將\\d替換為[[:digit:]][0-9]並將\\s替換為[[= =]][ ]

SELECT * FROM table WHERE search REGEXP '.+season[[:digit:]]+[[= =]].+' LIMIT 10

-- or...
SELECT * FROM table WHERE search REGEXP '.+season[0-9]+[ ].+' LIMIT 10

dbfiddle.uk 上的演示

在 MySQL 8.0 之前,

REGEXP "season[0-9]+[[:>:]]"

意思是“季節”,至少一位數字,然后是單詞邊界。 請注意,它將以標點符號停止。

REGEXP "season[0-9]+[^a-zA-Z]"

可能對你有用——它說它后面應該跟一個字母。

8.0 將詞邊界更改為:

REGEXP "season[0-9]+\b"

(警告:反斜杠可能需要加倍。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM