REGEXP_ILIKE

如果字符串包含正则表达式的匹配项,则返回 True。REGEXP_ILIKE 与 LIKE 谓词 相似,不同的是它使用不区分大小写的正则表达式,而不是简单的通配符匹配。

此函数使用默认区域设置对 UTF-8 字符串进行操作,即使区域设置设置为其他方式。

语法

REGEXP_ILIKE ( string-expression, pattern )

参数

示例

此示例将创建一个包含多个字符串的表来演示正则表达式。

  1. 使用单个 LONG VARCHAR 列 longvc 创建表 (body),并插入具有不同字符的数据:

    => CREATE table longvc(body long varchar (1048576));
    CREATE TABLE
    
    
    => insert into longvc values ('На берегу пустынных волн');
    => insert into longvc values ('Voin syödä lasia, se ei vahingoita minua');
    => insert into longvc values ('私はガラスを食べられます。それは私を傷つけません。');
    => insert into longvc values ('Je peux manger du verre, ça ne me fait pas mal.');
    => insert into longvc values ('zésbaésbaa');
    => insert into longvc values ('Out of the frying pan, he landed immediately in the fire');
    
    
    => SELECT * FROM longvc;
                          body
    ------------------------------------------------
     На берегу пустынных волн
     Voin syödä lasia, se ei vahingoita minua
     私はガラスを食べられます。それは私を傷つけません。
     Je peux manger du verre, ça ne me fait pas mal.
     zésbaésbaa
     Out of the frying pan, he landed immediately in the fire
    (6 rows)
    
  2. 包含字符 ç 的模式匹配表行:

    => SELECT * FROM longvc where regexp_ilike(body, 'ç');
                          body
    -------------------------------------------------
     Je peux manger du verre, ça ne me fait pas mal.
    (1 row)
    
  3. 选择所有包含字符 A/a 的行:

    => SELECT * FROM longvc where regexp_ilike(body, 'A');
                          body
    -------------------------------------------------
     Je peux manger du verre, ça ne me fait pas mal.
     Voin syödä lasia, se ei vahingoita minua
     zésbaésbaa
    (3 rows)
    
  4. 选择所有包含字符 O/o 的行:

    => SELECT * FROM longvc where regexp_ilike(body, 'O');
                               body
    ----------------------------------------------------------
     Voin syödä lasia, se ei vahingoita minua
     Out of the frying pan, he landed immediately in the fire
    (2 rows)