Greenplum中使用regexp_like

来源:互联网 发布:java 线程 通信 编辑:程序博客网 时间:2024/05/17 02:41

CREATE OR REPLACE FUNCTION regexp_like(str character, reg character)  RETURNS boolean AS$BODY$declarev_match  text;beginselect regexp_matches(str,reg) into v_match;if v_match is not NULL thenreturn true;elsereturn false;end if;end;$BODY$  LANGUAGE plpgsql VOLATILE;ALTER FUNCTION regexp_like(character, character)  OWNER TO gpadmin;测试:--手机号码:select regexp_like('+8618618888888','^ *(\\+86)?1[3|4|5|8]{1}[0-9]{9} *$');---身份证号:select regexp_like('120225198700000000','^([0-9]{15}$|^[0-9]{18}$|^[0-9]{17}([0-9]|X|x))$');---座机号码:select regexp_like('022-29778888','^ *0[0-9]{2,3}-?[0-9]{7,8} *$','i')

我们在SQL使用正则表达式进行格式校验,在Orcle中经常使用regexp_like,Postgresql中正则判断函数regexp_matches返回匹配的字符串,使用上有些不顺手,故改之


原创粉丝点击