gpt4 book ai didi

mysql - 使用正则表达式查询 mysql 数据库获取单词

转载 作者:行者123 更新时间:2023-11-29 14:21:38 26 4
gpt4 key购买 nike

我正在使用正则表达式来获取一组完成下一个语法的单词:

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

我的第一印象给我的感觉是它很好,直到我意识到有些字母的使用超出了正则表达式中包含的范围。

问题是我想获取可以用括号内的字母组成的所有单词(即 5 个字母),所以如果我有两个 'a' 结果单词可以没有 'a',一个 'a ' 甚至两个 'a',但不能再多了。

我应该在正则表达式中添加什么来避免这种情况?

提前致谢。

最佳答案

正如其他人所建议的那样,首先检索所有候选者并进行后处理可能会更好:

SELECT * FROM words WHERE word REGEXP '^[dcqahi]{5}$'

但是,没有什么可以阻止您执行多个 REGEXP。您可以使用以下蹩脚表达式选择字母“a”出现 0、1 或 2 次:

'^[^a]*a?[^a]*a?[^a]*$'

因此,首先进行预过滤,然后将其他 REGEXP 要求与 AND 结合起来:

SELECT * FROM words
WHERE word REGEXP '^[dcqahi]{5}$'
AND word REGEXP '^[^a]*a?[^a]*a?[^a]*$'
AND word REGEXP '^[^i]*i?[^i]*i?[^i]*$'

[编辑] 作为事后的想法,我推断对于非元音,您也希望限制为 0 或 1 次出现。所以如果是这样的话,你会继续下去......

    AND word REGEXP '^[^d]*d?[^d]*$'
AND word REGEXP '^[^c]*c?[^c]*$'
AND word REGEXP '^[^q]*q?[^q]*$'
AND word REGEXP '^[^h]*h?[^h]*$'

恶心。

关于mysql - 使用正则表达式查询 mysql 数据库获取单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com