在sqlserver2008r2版本中实现正则表达式

 

对电话号码进行判断,对符合是手机号码的挑选出来:


CREATE     FUNCTION [dbo].[fn_motiontel_regular]
(
 @input VARCHAR(20)  -- the input text
)
RETURNS VARCHAR(20) AS 
BEGIN
 DECLARE @out CHAR(1)

 begin
  EXEC master.dbo.xp_pcre_match @input, '(13[4-9]|147|15[0-2]|15[7-9]|18[278])\d{8}',@out OUT
 end 
 --print @out
 if (@out<>1 or @out is null) begin
  EXEC master.dbo.xp_pcre_match @input, '(13[0-2]|15[56]|18[56])\d{8}',@out OUT
 end
 --print @out
 if (@out<>1 or @out is null) begin
  EXEC master.dbo.xp_pcre_match @input, '(133|153|18[09])\d{8}',@out OUT
 end
 
 if (@out<>1 or @out is null) begin
  set @input='1'
 end
 else begin
  set @input=substring(@input,len(@input)-10,11)
 end
 
 RETURN @input
 
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值