我正在尝试使用下一个语法从给定集合中找到三个字母的单词:
SELECT * FROM words WHERE word REGEXP '^[dcqaahii]{3}'
并返回超过三个字母的单词。我认为{3}限制了输出的长度。
任何人都知道我的表情有什么不对吗?
提前致谢。
答案 0 :(得分:1)
您需要将字符串锚$
的结尾添加到正则表达式的末尾:
SELECT * FROM words WHERE word REGEXP '^[dcqaahii]{3}$'
此外,您可以从字符类中删除额外的a
和i
,而无需更改含义:^[dcqahi]{3}$
答案 1 :(得分:1)
REGEXP
不同, LIKE
不必匹配整个字符串。它只需匹配字符串的一部分。
如果您希望列与您的正则表达式完全匹配,则需要在正则表达式中包含BOL和EOL字符:
'^[dcqaahii]{3}$'
regular-expressions.info有更多详情。