MySQL REXEXP无法正常工作

时间:2016-11-15 16:39:10

标签: mysql regex

SELECT 'pharase' REGEXP '[^a-zA-Z]+' - 它会验证该短语是否包含英语字符(或不包含?)。

为什么查询SELECT '123g' REGEXP '[^a-zA-Z]+' -> 1显示1而不是0?

1 个答案:

答案 0 :(得分:2)

要检查字符串是否仅包含英文字符,请使用

SELECT 'pharase' REGEXP '^[a-zA-Z]+$'

其中:

  • ^ - 断言字符串开头的位置
  • [a-zA-Z]+ - 一个或多个ASCII字母
  • $ - 字符串
  • 的结尾

SELECT '123g' REGEXP '[^a-zA-Z]+' -> 1显示1,因为该字符串包含123,非字母,与REGEXP匹配的部分匹配(与需要完整的LIKE不同)字符串匹配)。