Mysql正则表达式找到固定长度的单词

时间:2012-04-20 16:13:23

标签: mysql regex

我正在尝试使用下一个语法从给定集合中找到三个字母的单词:

SELECT * FROM words WHERE word REGEXP '^[dcqaahii]{3}'

并返回超过三个字母的单词。我认为{3}限制了输出的长度。

任何人都知道我的表情有什么不对吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您需要将字符串锚$的结尾添加到正则表达式的末尾:

SELECT * FROM words WHERE word REGEXP '^[dcqaahii]{3}$'

此外,您可以从字符类中删除额外的ai,而无需更改含义:^[dcqahi]{3}$

答案 1 :(得分:1)

REGEXP不同,

LIKE不必匹配整个字符串。它只需匹配字符串的一部分。

如果您希望列与您的正则表达式完全匹配,则需要在正则表达式中包含BOL和EOL字符:

'^[dcqaahii]{3}$'

regular-expressions.info有更多详情。