我已经使用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