我需要找出字符串的最后一个字母和第一个字母是元音(a,e,i,o,u)。我想用正则表达式来做这件事。
select distinct city from station where city regexp '*.^[aeiou]$' and city regexp '^[aeiou].*';
First letter: ^[aeiou].*
last letter : *.^[aeiou]$
这里的第一个字母标识工作正常,但最后一个字母正则表达式无法正常工作
答案 0 :(得分:1)
这里的第一个字母标识工作正常,但最后一个字母正则表达式无法正常工作
这很可能是因为最后一个字母前面没有文字 ^
字符......
^
和$
仅将模式锚定到开头/结尾,此时它们自身出现在模式的开头或结尾(广义上讲)。对于*.^[aeiou]$
而言^
并非如此,因此在这个位置它仅表示文字 ^
。
^[aeiou]
和[aeiou]$
在这里应该足够了 - 这要求在开头(^
)resp中立即找到其中一个元音字符。结束($
)。你不需要其他人试图检查两者之间的任意字符。
答案 1 :(得分:0)
此代码可以同时检查两种情况。
select distinct city from station where city regexp '^[aeiou].*[aeiou]$';