#REGEXP_LIKE

regexp_like
REGEXP_LIKE ( expr , regexp , match_para )

REGEXP_LIKE为正则表达式函数,其功能与LIKE语法相似,但与LIKE只能使用'%'和'_'通配符相比,REGEXP_LIKE函数的regexp参数可使用正则表达式,对expr表示的字符串进行正则匹配,函数返回值为布尔类型,匹配成功时返回TRUE,否则返回FALSE。

expr的值须为字符型,或可转换为字符型的其他类型。当expr的值为NULL时,函数返回NULL。

expr不支持32000字节以上的XMLTYPE、LOB类型数据。

函数使用输入字符集定义的字符计算字符串(仅支持UTF-8)。

regexp

指定一个RegExp,长度不超过512字节,可为NULL,此时函数返回NULL。

match_para

YashanDB支持在进行正则匹配时指定如下匹配参数:

  • 'i':大小写不敏感。
  • 'c':大小写敏感,默认为此值。
  • 'n':允许句点(.)匹配任何字符,包括换行符。如果省略此参数,则句点与换行符不匹配。
  • 'm':将字符串视为多行,将^和$分别解释为字符串中任意行的开始和结束,而不仅仅是整个字符串的开始或结束。如果省略此参数,则将字符串视为一行。
  • 'x':忽略空白和#注释。默认情况下,空白字符与其自身匹配。

match_para参数可以不指定或指定为NULL(均使用默认值),如指定了除上述之外的其他参数,则函数返回YAS-04363错误。

示例

SELECT REGEXP_LIKE('aa\naa','^aa$','i') reg1,
REGEXP_LIKE('aa','^aa$','i') reg2 FROM DUAL;
REG1                 REG2              
-------------------- --------------------
false                true             
 
SELECT REGEXP_LIKE('AA','A.A') reg1,
REGEXP_LIKE('AA','A.A','n') reg2 FROM DUAL;
REG1                 REG2                
-------------------- --------------------
false                false     
 
SELECT REGEXP_LIKE('-654196584','^-[0-9]*[1-9][0-9]*$') reg1,
REGEXP_LIKE('654196584','^[0-9]*[1-9][0-9]*$','m') reg2 FROM DUAL;        
REG1                 REG2                
-------------------- --------------------
true                 true
pdf-btn 下载文档
copy-btn 复制链接