MySQL Regexp是否支持Unicode匹配

use*_*443 5 regex mysql unicode pattern-matching

有谁知道Mysql的正则表达式是否支持unicode?我一直在做一些研究,大多数博客等似乎表明存在问题或者不支持.我想知道最好是使用LIKE进行unicode模式匹配和regexp进行ASCII增强模式匹配吗?

我喜欢能够在字符串的开头或结尾搜索匹配的想法,但如果regexp不支持unicode,那么如果我的文本是unicode则可能很难.

egg*_*yal 7

  1. 有谁知道Mysql的正则表达式是否支持unicode?我一直在做一些研究,大多数博客等似乎表明存在问题或者不支持.

    正则表达式中所述:

    警告

    REGEXPRLIKE在逐个字节的方式运营商合作,所以他们没有多字节安全和可能产生的多字节字符集意想不到的效果.此外,这些运算符通过字节值比较字符,并且即使给定的排序规则将重音字符视为相等,重音字符也可能无法比较.

  2. 我想知道最好是使用LIKE进行unicode模式匹配和regexp进行ASCII增强模式匹配吗?

    是的,那将是最好的.

  3. 我喜欢能够在字符串的开头或结尾搜索匹配的想法,但如果regexp不支持unicode,那么如果我的文本是unicode则可能很难.

    也可以这样做LIKE:

    WHERE foo LIKE 'bar%'
    
    Run Code Online (Sandbox Code Playgroud)

    和:

    WHERE foo LIKE '%bar'
    
    Run Code Online (Sandbox Code Playgroud)

  • 从Mysql 8.0.4开始,支持Unicode (3认同)