正则表达式,用于查找字符串的最后一个字母

时间:2018-01-29 12:32:54

标签: mysql

我需要找出字符串的最后一个字母和第一个字母是元音(a,e,i,o,u)。我想用正则表达式来做这件事。

select distinct city from station where city regexp '*.^[aeiou]$' and city regexp '^[aeiou].*';

First letter: ^[aeiou].*
last letter : *.^[aeiou]$

这里的第一个字母标识工作正常,但最后一个字母正则表达式无法正常工作

2 个答案:

答案 0 :(得分:1)

  

这里的第一个字母标识工作正常,但最后一个字母正则表达式无法正常工作

这很可能是因为最后一个字母前面没有文字 ^字符......

^$仅将模式锚定到开头/结尾,此时它们自身出现在模式的开头或结尾(广义上讲)。对于*.^[aeiou]$而言^并非如此,因此在这个位置它仅表示文字 ^

^[aeiou][aeiou]$在这里应该足够了 - 这要求在开头(^)resp中立即找到其中一个元音字符。结束($)。你不需要其他人试图检查两者之间的任意字符。

答案 1 :(得分:0)

此代码可以同时检查两种情况。

select distinct city from station where city regexp '^[aeiou].*[aeiou]$';