我已經使用REGEXP試圖正則表達式:MySQL的多字節字符
'^[A-Za-z0-9ÿ!#$%&*[email protected]ˆ^_¡\-¦¨¯´¸¿˜‘’‚「」„\'‹›¢£¤¥€±«»×÷§©¬®°µ¶·…†‡•‰¼½¾¹²³ªÇºß`]+$'
但它也接受這是不存在像ϢϗγΔ
RE的字符。
任何人都可以幫忙嗎?
我已經使用REGEXP試圖正則表達式:MySQL的多字節字符
'^[A-Za-z0-9ÿ!#$%&*[email protected]ˆ^_¡\-¦¨¯´¸¿˜‘’‚「」„\'‹›¢£¤¥€±«»×÷§©¬®°µ¶·…†‡•‰¼½¾¹²³ªÇºß`]+$'
但它也接受這是不存在像ϢϗγΔ
RE的字符。
任何人都可以幫忙嗎?
MySQL中的REGEXP只處理字節,而不是多字節字符。
另一方面,您的字符集似乎完全在latin1
字符集中。
因此,我建議您將字符串轉換爲latin1,然後使用REGEXP進行測試(以避免少數字符丟失),然後轉換回來,看看您是否比開始使用更多?
。問號表示,由於缺少針對某些字符的latin1編碼,因此latin1轉換到 latin1失敗。
請說明您查詢的意圖;可能有一種更簡單的方法來處理它。
謝謝瑞克。你的回答給了我一個解決方案:) – Meghana
這已被修復,它的排序問題我已經將排序規則從utf8_unicode_ci更改爲utf8_general_ci。
[好像對我有用](http://rubular.com/r/djVTNqEe1n)。 –
我用[regex101](https://regex101.com/)測試過它,它工作正常。 – Blobonat
來自「MySQL」我想也許你需要給我們一些MySQL細節,比如你的SQL排序規則和連接字符集,以及這個正則表達式是如何與你的SQL查詢進行交互的? – Martin