sql - 获取不包含任何字母但在正则表达式 Postgres 中给出的行

标签 sql regex postgresql

首先,如果这是一个重复的问题,我们深表歉意。我已尽力搜索但没有成功,而且我什至无法用关键字正确表达我的问题!

我需要编写一个 Postgres 查询,它将查找包含任何字母但在正则表达式中给出的所有行。我已经发现我需要将 LIKE 语句与正则表达式一起使用。但我不知道如何在适当的条件下变白。

示例:字母为“A”、“P”、“P”、“L”、“E”。

查询应返回

  1. 应用程序
  2. PAL
  3. 圈数
  4. 苹果

查询不应返回

  1. PELT
  2. PE
  3. 等等...

有什么想法吗?

最佳答案

您可以在 postgresql 中使用 ~ 运算符代替 LIKE 来表示正则表达式,您的正则表达式应如下所示:

SELECT * FROM tablename WHERE col ~ '^[APLE]+$';

表示匹配[APLE]组中的一个或多个字符

所以它可以返回:

APP 
PAL 
LAP 
APPLE

而不是:

PELT
PIE 

关于sql - 获取不包含任何字母但在正则表达式 Postgres 中给出的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46274668/

相关文章:

mysql - 使用 SQL 获取车主及其行驶里程

sql - 使用 Sql 2005 CTE 可以吗?

javascript - 匹配正则表达式 javascript 中的特殊字符

mysql - 在数据库中搜索/替换变量文本

python - 将 python 字典传递给 psycopg2 游标

c++ - C++ SQL解析器到表

mysql - 仅在查询结果中包含第一组

regex - 使用 grep+regex 从输出中获取特定值并存储在 shell 中的变量中

python - 一次从临时表中获取n条记录

postgresql - 为什么这是空的?