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

如何在%ilike%中同时匹配含空格与不含空格的字符串

如何用单个表达式匹配含/不含空格的目标字符串

我有两个字符串:"this_is_a string" 和 "this_is_astring",希望通过 ILIKE 同时匹配这两种情况。已知单独匹配含空格的表达式为:

column_name ILIKE 'this_is_a string'

单独匹配不含空格的表达式为:

column_name ILIKE 'this_is_astring'

想把两者合并成一个表达式同时检测两种情况,比如尝试过类似 ILIKE 'this_is_a[\s-'']string' 的写法,但无法生效。

可行解决方案

PostgreSQL 的 ILIKE 基于 SQL 标准通配符(% 匹配任意长度字符、_ 匹配单个字符),不支持正则表达式的字符类语法,因此有两种靠谱的实现方式:

  1. ILIKE 结合 OR 逻辑
    直接将两个匹配条件用 OR 连接,精准匹配两种情况:
column_name ILIKE 'this_is_a string' OR column_name ILIKE 'this_is_astring'
  1. 使用正则匹配操作符 ~*
    如果偏好正则风格的简洁写法,可以用 PostgreSQL 提供的不区分大小写正则匹配操作符 ~*,通过 \s? 匹配「0个或1个空白字符」:
column_name ~* 'this_is_a\s?string'

这个表达式会同时命中带空格和不带空格的目标字符串,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:30:59