mysql正则表达式模式匹配[天气观测站11]
我在练习这个问题 当我使用mysql正则表达式模式匹配[天气观测站11],mysql,regex,Mysql,Regex,我在练习这个问题 当我使用 select distinct city from station where regexp_like(city, '^[^aeiou]|[^aeiou]$'); 给了我正确的答案(458个结果) 在哪里 给了我错误的答案(299个结果) 我觉得'^[^aeiou]'和NOT'^[aeiou]'都应该给我一个不以aeiou结果开始的提示,但显然不是。这两个答案在逻辑上有什么不同?它们看起来相同,但却不同 regexp_like(city, '^[^aeiou]|[^
select distinct city
from station
where regexp_like(city, '^[^aeiou]|[^aeiou]$');
给了我正确的答案(458个结果)
在哪里
给了我错误的答案(299个结果)
我觉得
'^[^aeiou]'
和NOT'^[aeiou]'
都应该给我一个不以aeiou结果开始的提示,但显然不是。这两个答案在逻辑上有什么不同?它们看起来相同,但却不同
regexp_like(city, '^[^aeiou]|[^aeiou]$')
如果城市以辅音(非元音)开头或以辅音结尾,则返回匹配
然而:
not regexp_like(city, '^[aeiou]|[aeiou]$')
如果城市
没有以元音开头和结尾,则将返回匹配项
或者换句话说,如果城市以辅音(非元音)开头,而城市以辅音(非元音)结尾,它将返回匹配
注意两个表达式中的
或与和之间的不同,这将导致第一个表达式与第二个表达式中的匹配更多。它们看起来相同,但它们不同
regexp_like(city, '^[^aeiou]|[^aeiou]$')
如果城市
以辅音(非元音)开头或以辅音结尾,则返回匹配
然而:
not regexp_like(city, '^[aeiou]|[aeiou]$')
如果城市
没有以元音开头和结尾,则将返回匹配项
或者换句话说,如果城市以辅音(非元音)开头,而城市以辅音(非元音)结尾,它将返回匹配
注意两个表达式中的或与和之间的不同,这将导致第一个表达式与第二个表达式中的匹配更多。@buddemat这是怎么回事?这会让你以元音开头或以元音结果结尾。对不起,我应该写更多的解释。我的观点与下面的答案相同,只是添加了括号来指出第二个是或,否定变成和。我本来打算写更多的东西,但是在车上,突然意识到我需要下车了。不管怎样,既然你得到了一个很好的答案,我会删除我的评论以避免混淆…你运行的是什么版本?我不知道我在HackerRank上做在线练习的是什么regexp\u like()
@RickJames。所以可能与版本无关。regexp_like()在这里。我也是从其他问题中学到的。@Meruemu-这是8.0的新功能。(旧版本没有这个功能)。@buddemat怎么办?这会让你以元音开头或以元音结果结尾。对不起,我应该写更多的解释。我的观点与下面的答案相同,只是添加了括号来指出第二个是或,否定变成和。我本来打算写更多的东西,但是在车上,突然意识到我需要下车了。不管怎样,既然你得到了一个很好的答案,我会删除我的评论以避免混淆…你运行的是什么版本?我不知道我在HackerRank上做在线练习的是什么regexp\u like()
@RickJames。所以可能与版本无关。regexp_like()在这里。我也是从其他问题中学到的。@Meruemu-这是8.0的新功能。(旧版本没有将其作为功能)。