hive正则匹配字符串中 任意数量的字符开头 中间连续6个数字 任意数量字符结尾
select
if(regexp_extract(f,'([^0-9]+[0-9].{6}+|||)',1) is not null and regexp_extract(f,'([^0-9]+[0-9].{6}+|||)',1) <>'',1,0) as flag
from
dual
例如
snow|www.tom0750.com 返回 0
123654|www.tom075011.com 返回1
1236|www.tom075011.com 返回0
snow|123654|www.tom0750.com 返回1
snow321|123654|www.tom0750.com 返回1
winter|snow|123654|www.tom0750.com 返回1
spring|winter|snow|123654|www.tom0750.com 返回1
spring|winter|snow|123654|www.tom075011.com 返回1
spring|winter|snow|abc123|www.tom075011.com 返回0
求一个正则表达式,万分感谢
从你初步的正则式看是要求恰好存在6个数字符的。
regexp '[^0-9]*\d{6}[^0-9]'
不过你的规则或者说例子有问题,你对中间的定义是什么?
上面也存在连续恰好6个数字符的,缺返回0?
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。