如何在MySQL中使用RLIKE / REGEXP模式。*

时间:2019-03-04 03:32:13

标签: mysql rlike

问题:从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],而在第二个问题中仅使用一次?

1 个答案:

答案 0 :(得分:0)

CITY RLIKE '^[aeiouAEIOU][aeiouAEIOU]$'

这将只匹配两个元音都正确的城市名称。

在正则表达式中,[aeiouAEIOU]等方括号中的一组字符恰好匹配一个字符。

两个方括号之间没有任何字符,因此匹配的字符串之间不得有任何字符。