zoukankan      html  css  js  c++  java
  • hive正則表達式

    hive中实现正則表達式,与java中的正則表達式有所差别:

    这里经过探索总结了一些:

    hive中的正则能够用,可是有所差别,差别在于原来的‘’ 转义,这里变成了双斜杠了‘\’

    hive中的正则解析函数:regexp_extract;    比如:‘匹配 10.122.248’

    select regexp_extract(host,'(^[\w]+)\.([\w]+)\.([\w]+)',0) aa from browsewebpagelog where dt like '20140630%';

    第一參数:要处理的字段,第二參数须要匹配的正則表達式。第三个參数:0是显示与之匹配的整个字符串,1,是显示第一个括号中面的,2是显示第二个括号中面的字段...

    语法: regexp_extract(string subject, string pattern, int index)

    返回值: string

    说明:将字符串subject依照pattern正則表達式的规则拆分,返回index指定的字符。

    注意。在有些情况下要使用转义字符

    举例:

    hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 1) from dual;

    the

    hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) from dual;

    bar

    hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 0) from dual;

    foothebar

    注:有些博客上用 rlike匹配正则。我试过它的含义是仅仅要出现你所制定的正则时,都给你匹配上,你必须加入開始‘^’的符号,否则匹配的结果绝对不是所期望的。


  • 相关阅读:
    Mac终端运行java程序
    Mac上csv导入mysql提示错误[Error Code] 1290
    Mac终端使用mysql
    将spark默认日志log4j替换为logback
    Cocos2d-x 3.x部署到安卓
    Cocos2d-x 3.0 场景切换
    visual studio 未将对象引用设置到对象的实例
    C++ list用法
    减而治之
    递归
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6884809.html
Copyright © 2011-2022 走看看