sql - Redshift 提取两个模式之间的字符串 (regexp_substr)

标签 sql regex amazon-web-services amazon-redshift

我正在尝试提取 deviceSerialNumber= 之后一直到 & 或字符串末尾的文本。数据看起来像

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

我试过了

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

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

最佳答案

我知道现在回复已经晚了,但这是对我有用的解决方案。

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

关于sql - Redshift 提取两个模式之间的字符串 (regexp_substr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50841278/

相关文章:

amazon-web-services - 如何优化我的 DynamoDB 表二级全局索引,以便记录均匀分布,同时仍保持所有记录可排序?

amazon-web-services - 使用 Gremlin 访问 Neptune 中的命名图

sql - 统计有多少列符合条件

用于密码验证的正则表达式 (ASP)

php - MySQL简单查询

java - 在java中获取html文件的一部分

Python:连续多个正则表达式?

javascript - DynamoDB 节流

sql - 如何按自定义规则订购,例如如何订购 4,2,1,3

sql - 在 group by 子句中添加一个常量值列