我有一个英语单词数据库,我想使用正则表达式在该数据库中进行搜索 我使用了这个查询:
SELECT * FROM `english` WHERE CHAR_LENGTH(words)=4 AND `words` REGEXP '^[oofd]+$'
它正在工作并选择诸如food、foo、of、do
之类的单词
但它也选择像 fooo
这样带有 3 个 o 的单词,但在我的正则表达式中只有 2 个 o
选择没有重复字符的单词的正确正则表达式是什么
如果有两个字符例如oo
,它将仅选择带有两个o
或1或的单词零个,不是三个或更多
我在互联网上查找了这个:
^(?:([oofd])(?!.*\1))
但它给了我一个错误:
#1139 - Got error 'repetition-operator operand invalid' from regexp
最佳答案
检查是否按顺序存在两个元音以及按顺序不存在三个或更多元音:
SELECT *
FROM english
WHERE
words REGEXP '^.*[aeiou]{2}.*$' AND
words NOT REGEXP '^.*[aeiou]{3}.*$'
如果您只想查找某些重复的元音,您应该能够相当轻松地调整此答案。
关于mysql - 在mysql中使用REGEXP进行搜索,不包含重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915848/