Regex 不以元音开头或结尾的单词的正则表达式?

Regex 不以元音开头或结尾的单词的正则表达式?,regex,regular-language,Regex,Regular Language,我使用了这个正则表达式:^[aeiou](\w|\s)*[aeiou]$ 用于以元音开头和结尾的单词,效果很好 但是当我使用这个正则表达式时: ^[^aeiou](\w |\s)*[^aeiou]$对于不以元音开头和结尾的单词,它不起作用。你能告诉我我的第二个正则表达式出了什么问题吗 单词类似于: 南不列颠 河流交汇处 云雀普尔 南港 康普顿 菩提树 塞奇威克 休谟顿 西尔 黑豹烧伤 select distinct(city) from station WHERE regexp_like(c

我使用了这个正则表达式:
^[aeiou](\w|\s)*[aeiou]$
用于以元音开头和结尾的单词,效果很好

但是当我使用这个正则表达式时:
^[^aeiou](\w |\s)*[^aeiou]$
对于不以元音开头和结尾的单词,它不起作用。你能告诉我我的第二个正则表达式出了什么问题吗

单词类似于:
南不列颠
河流交汇处
云雀普尔
南港
康普顿
菩提树 塞奇威克
休谟顿
西尔
黑豹烧伤

select distinct(city) from station
  WHERE regexp_like(city, '^[^aeiou](\w|\s)*$', 'i')
    OR regexp_like(city, '^(\w|\s)*[^aeiou]$', 'i');

问题是问“以结尾或以开头”,你可以在正则表达式中这样做,但我在
WHERE
子句中作为
这样做,如果我理解所需的逻辑,如果你碰巧想要一个正则表达式,我会使用类似
的东西/(^[aeiou](\w |\s)*)|((\w |\s)*[aeiou]$)/i
。当然,这不是最可读的格式,但应该只抓取以非元音开头和结尾的单词。

您的正则表达式引擎不区分大小写吗<代码>[A]!=[a]
是的,我已经应用了不区分大小写的修饰符来为我工作。你能发布你用来测试这些的代码吗?什么语言?实际上我正在尝试解决这个问题:我正在运行这个查询
从regexp_喜欢的站点中选择不同的(城市),^[^aeiou](\w |\s)*[^aeiou]$,“i”)是基于oracle的。我使用的是:
^([^aeiou](\w\124;\ s)*)|((\w\124;\ s)*[^aeiou])$
,这很有效。我试图在regexr.com中实现这一点,但我认为您必须考虑到
$
前面的
\r
字符,而且它变得越来越混乱。@Antara Roy--我刚刚看到您对bradlis7的评论,您在那里采取了类似的方法。