本文介紹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