首页 > 解决方案 > 两个模式之间的 Redshift 提取字符串 (regexp_substr)

问题描述

我正在尝试提取随后deviceSerialNumber=出现的文本,直到&字符串的 a 或结尾。数据看起来像

someddata&=somedataagain&deviceSerialNumber=device12345&anotherField=moreData someddata&=somedataagain&deviceSerialNumber=deviceabcd

我试过这个

REGEXP_SUBSTR(session_tags || '&', 'deviceSerialNumber(.*)&') from table

但是,这会返回所有文本,直到最后一个&(这是字符串的结尾,因为我附加了一个&用于模式匹配的目的)。如何修改此正则表达式以仅提取文本直到第一个&

标签: sqlregexamazon-web-servicesamazon-redshift

解决方案


我知道现在回复太晚了,但这里有一个对我有用的解决方案。

select regexp_substr(
    'someddata&=somedataagain&deviceSerialNumber=device12345&anotherField=moreData ', 
    'deviceSerialNumber=(.*)&', 0, 1, 'e');

推荐阅读