本文介绍REGEXP_LIKE函数的使用场景。

背景说明

Oracle支持REGEXP_LIKE函数,但是PolarDB O引擎不支持该函数。

在Oracle中具体使用如下:
SQL> SELECT * FROM xmldemo WHERE REGEXP_LIKE (B, '^f([a-z]+)e$');
         A B
---------- --------------------
       20 firstline

解决方案

使用POSIX正则表达式进行改写,similar to‘~’可以支持正则表达式匹配。
van=> SELECT * FROM xmldemo WHERE b SIMILAR to 'f([a-z]+)e';
 a  |     b 
    ----+-----------
 20 | firstline
(1 row)
 或者
van=> SELECT * FROM xmldemo WHERE b ~ 'f([a-z]+)e'; 
a  |     b 
    ----+-----------
 20 | firstline
(1 row)

详情请参见https://www.postgresql.org/docs/11/functions-matching.html#FUNCTIONS-POSIX-REGEXP