问题:从STATION查询以元音(即a,e,i,o和u)为首尾两个字母的城市名称列表。您的结果不能包含重复项。
我找到了@Mureinik编辑的答案(谢谢!这非常有帮助!)
SELECT DISTINCT CITY FROM STATION WHERE CITY RLIKE '^[aeiouAEIOU].*[aeiouAEIOU]$';
我很困惑,问题是他们的第一个和最后一个字符都是aeiou,为什么我不能只使用
CITY RLIKE '^[aeiouAEIOU][aeiouAEIOU]$'
但是,当我取出时。和*,显示错误答案。
为什么需要使用。和*在这个问题上? 不会。和*总是一起使用?
还有另一个问题: 从STATION查询不以元音开头的CITY名称列表。您的结果不能包含重复项。
SELECT DISTINCT CITY FROM STATION WHERE CITY NOT RLIKE '^[aeiouAEIOU].*$';
为什么在第一个问题中两次使用[aeiouAEIOU],而在第二个问题中仅使用一次?
答案 0 :(得分:0)
CITY RLIKE '^[aeiouAEIOU][aeiouAEIOU]$'
这将只匹配两个元音都正确的城市名称。
在正则表达式中,[aeiouAEIOU]
等方括号中的一组字符恰好匹配一个字符。
两个方括号之间没有任何字符,因此匹配的字符串之间不得有任何字符。