Redshift 在两个模式之间提取字符串 (regexp_substr)

Dav*_*vid 3 regex sql amazon-web-services amazon-redshift

我正在尝试提取deviceSerialNumber=出现在 a&或字符串末尾之前的文本。数据看起来像

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

我试过这个

REGEXP_SUBSTR(session_tags || '&', 'deviceSerialNumber(.*)&') from table
Run Code Online (Sandbox Code Playgroud)

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

nab*_*aba 7

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

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