You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配字符串首尾元音字母的问题排查求助

问题排查与解决

嘿,我来帮你搞定这个正则匹配的问题!你写的尾字母匹配正则*.^[aeiou]$有两个明显的错误,导致它无法正常工作:

  • 正则语法顺序错误:你用了*.,但正确的"匹配任意字符任意次数"的写法是.*(点表示任意字符,星号表示匹配0次或多次),顺序搞反了就完全不符合正则语法规则。
  • 多余的开头锚点:^是用来标记字符串开头的锚点,你要匹配的是结尾的元音,这个符号不仅没用,还会让正则要求字符串开头就必须是[aeiou]$,这显然和你的需求背道而驰。

正确的解决方案

其实你不需要拆分两个REGEXP条件,用一个正则就能同时匹配"首字母和尾字母都是元音"的字符串:

SELECT DISTINCT city FROM station WHERE city REGEXP '^[aeiou].*[aeiou]$';

正则各部分解释:

  • ^[aeiou]:强制字符串开头必须是a/e/i/o/u中的一个
  • .*:匹配中间任意长度的任意字符(包括空字符,所以单个元音字母比如"a"也会被匹配到)
  • [aeiou]$:强制字符串结尾必须是a/e/i/o/u中的一个

补充:大小写兼容处理

如果你的city字段里包含大写的元音字母(比如"Atlanta"),可以修改正则同时匹配大小写,或者转成小写后匹配:

方案1:正则包含大小写元音

SELECT DISTINCT city FROM station WHERE city REGEXP '^[aeiouAEIOU].*[aeiouAEIOU]$';

方案2:转小写后匹配(更简洁)

SELECT DISTINCT city FROM station WHERE LOWER(city) REGEXP '^[aeiou].*[aeiou]$';

内容的提问来源于stack exchange,提问作者sasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:51:23