SAP HANA |在两个字符串之间获取字符串

时间:2019-05-07 15:21:00

标签: sql hana

我的表T中有以下数据-

    ROW      Col1

      1       utm_source:|utm_medium:kiosk|device:d|expires:Sun, 02 Jun 
              2019 13:27:28 GMT|IP:10.YYY.YY.YY|
      2       IP:10.XXX.XX.XX|storeid:TL04K2|
      3       IP:10.YY.YX.XZ|

我需要从此列中获取IP,该IP地址将以字符串开头标识为“ IP:”,以字符串结尾标识为“ |”

是否可以在花名中使用substring_regexp来获得它?

2 个答案:

答案 0 :(得分:2)

尝试使用:

int

答案 1 :(得分:0)

是的,即使您使用SUBSTRING_REGEXPR函数,这也是可能的。

只需构建与IP:|之间的字符串匹配的正则表达式,然后在函数中使用它即可:

 SELECT ROW
      , SUBSTRING_REGEXPR (' -- put your regular expression here -- ' IN "Col1") as IP_EXTRACTED
 FROM 
      T;

有多种方法可以将您的条件表达为正则表达式,其中一种可能是

IP:([[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3})\| 

此地址只能匹配点之间1到3位数字的IP地址(不匹配任何字符。

SELECT ROW
  , SUBSTRING_REGEXPR ('IP:([[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3})\|'
                      IN "Col1" 
                      GROUP 1) as IP_EXTRACTED
FROM 
  T;