我去過MySQL網站的正則表達式頁面,無法正確查詢。我有一個鏈接列表,我想查找不包含句點的無效鏈接。這裏是我的代碼無法正常工作:MySQL - 需要查找沒有句點的記錄
select * from `links` where (url REGEXP '[^\\.]')
它返回在整個數據庫中的所有行。我只是想讓它顯示'url'不包含句點的行。謝謝你的幫助!
我去過MySQL網站的正則表達式頁面,無法正確查詢。我有一個鏈接列表,我想查找不包含句點的無效鏈接。這裏是我的代碼無法正常工作:MySQL - 需要查找沒有句點的記錄
select * from `links` where (url REGEXP '[^\\.]')
它返回在整個數據庫中的所有行。我只是想讓它顯示'url'不包含句點的行。謝謝你的幫助!
你的正則表達式匹配任何東西其中包含一個字符不是一段時間。因此,如果它包含foo.bar
,則正則表達式匹配f
併成功。你可以這樣做:
WHERE url REGEXP '^[^.]*$'
錨和重複操作使這個檢查每字符不是句點。或者,你可以這樣做:
WHERE LOCATE(url, '.') = 0
BTW,你不需要逃避.
當它在正則表達式中[]
。
使用regexp
似乎在這裏是一個矯枉過正。一個簡單的like
操作者會做的伎倆:
SELECT * FROM `links` WHERE url NOT LIKE '%.%
編輯:
說了這麼多,如果你真的想否定regexp
,只需使用not regexp
:
SELECT * FROM `links` WHERE url NOT REGEXP '[\\.]';
感謝您的選擇!我正在學習:) – pkSML
感謝您的深入解釋。非常感激! – pkSML