所以我稱一表「lu_regex」與所謂的「正則表達式」MySQL的REGEXP - 當列包含正則表達式
Select * from lu_regex;
athedsl-\d+
i5[93][0-9a-fA-F]+\.versa
5ac[a-f0-9]+.+sky
表中包含的行1000的專欄中,各種正則表達式的語法,我在這個例子中只顯示了三個。
現在我試圖接受用戶輸入並將該輸入與表中的行進行匹配。所以我正在這樣做。
SELECT * FROM lu_regex where '5aca3a11.bb.sky.comr' regexp regex;
regex
5ac[a-f0-9]+.+sky
1 row returned.
我回來了我的預期,與該查詢,然後我嘗試這一個。
SELECT * FROM lu_regex where 'athedsl-07371.home.otenet.gr' regexp regex;
0 rows returned.
它應該匹配「athedsl- \ d +」,但我假設它與「\ d」有關。我甚至試圖將這個添加到數據庫「athedsl - \\ d +」,並且不會導致匹配。
我試圖堅持一個MySQL解決方案,我做錯了什麼,這應該是可能的。
作爲第一次嘗試確認/弱化你的懷疑,你可以用'athedsl- [0-9] +'替換'athedsl- \ d +'。 – cFreed
它被替換時匹配'athedsl- [0-9] +'。 – Henry
所以這個問題真的是你懷疑的地方:'\ d'似乎不工作。我不明白爲什麼,只是現在,但我會嘗試找到一些東西......如果我不回來,你會知道我不幸運:) – cFreed