[英]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
在 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.