大数据

hivesql 正则提取url

2021-03-05  本文已影响0人  堂哥000

整体写法

regexp_replace(regexp_extract(text,'([a-z0-9:/A-Z]+\\\\.(?![0-9]{2}[^0-9a-zA-Z.:/])[0-9/:-a-zA-z.]+)',1),'^:','' ) 
分步解释
  1. url一定有'.'存在 : 在点的前后一定有字母、数字、冒号、斜杠等字符(无中文)
    按这个想法可得到 [a-z0-9:/A-Z]+\\\\.[0-9/:-a-zA-z.]+
  2. 剔除干扰数据
    a. 开头冒号:使用regexp_replace(result_text,'^:','' )统一替换
    b.一段文本中有多个疑似url ,比如99.99等同样会干扰输出
    对于这样的使用零宽断言来实现:在点的后面不允许出现两个数字结尾
    \\\\.(?![0-9]{1,2}[^0-9a-zA-Z.:/])
上一篇下一篇

猜你喜欢

热点阅读