仅由元音组成的 Postgres 字符串

Postgres string composed only of vowels

我如何查询我的 postgres 数据库以在我的“名称”列中找到仅由元音字符组成的字符串。我目前正在尝试:

SELECT * FROM testdb WHERE aname ~* '[aeiouAEIOU]'; 

但它似乎工作正常。

您的代码检查字符串是否包含至少一个元音字母,这与仅包含元音字母.

不同

考虑一下:

SELECT * FROM testdb WHERE aname ~* '^[aeiou]+$'

^$ 分隔字符串的开头和结尾,这样可以确保字符串只包含元音(和至少一个字符)。

请注意,~* 执行 case-insensitive 匹配,因此无需在字符 class 中放入大写元音。

您也可以表示为:

SELECT * FROM testdb WHERE aname !~* '[^aeiou]'

哪些词组为:字符串不包含元音以外的字符。