Mysql正则表达式将名称与最多两个单词进行匹配

Mysql正则表达式将名称与最多两个单词进行匹配,mysql,regex,Mysql,Regex,我一直在尝试,但没有成功: select * from table where name regexp '^[:alpha:]{2}$' 请帮帮我?这两个词之间可能需要一些空白,对吗?试一试 select * from table where name regexp '^[[:alpha:]]+[[:space:]]*[[:alpha:]]*$' [[:alpha:]+匹配一个或多个字母字符 [[:space:][]*匹配零个或多个空白字符。(您可能希望改用[[:blank:][]*仅匹配

我一直在尝试,但没有成功:

select * from table where name regexp '^[:alpha:]{2}$'

请帮帮我?

这两个词之间可能需要一些空白,对吗?试一试

select * from table where name regexp '^[[:alpha:]]+[[:space:]]*[[:alpha:]]*$'
  • [[:alpha:]+
    匹配一个或多个字母字符
  • [[:space:][]*
    匹配零个或多个空白字符。(您可能希望改用
    [[:blank:][]*
    仅匹配空格和制表符,或
    [[]]*
    仅匹配空格。)
  • [[:alpha:][]*
    匹配零个或多个字母字符
所以这应该接受如下字符串

  • “foo”
  • “foo”
  • “foo”
  • “foo-bar”
  • “foo-bar”
并拒绝类似的字符串

  • “foo”
  • “foo”
  • “foo bar baz”

正在寻找两个不可能工作的匹配结果,因为每个括号表达式将只匹配一个字符,并且正则表达式包含两个必需的
^
锚。谢谢,但是为了完成这项工作,我必须使用[[:alpha:]而不是[:alpha:]
select * from table where name regexp '^[:alpha:][:blank:]^[:alpha:]*$'