sql - 两个模式之间的 Redshift 提取字符串 (regexp_substr)
问题描述
我正在尝试提取随后deviceSerialNumber=
出现的文本,直到&
字符串的 a 或结尾。数据看起来像
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');
推荐阅读
- haskell - 如何检查列表中的所有奇数是否大于 10
- sql - postgres - 如何更改带有时间戳的列?
- node.js - TypeError:无法将 undefined 或 null 转换为对象 Puppeteer
- git - 错误:未找到存储库。致命:无法从远程存储库中读取。请确保您拥有正确的访问权限并且 repo 存在
- loops - Perl Hash:如果值在范围之间,则获取键
- spring - Spring boot pub/sub 订阅者在部署后立即被删除
- cucumber - 无法追踪的 java.lang.NullPointerException
- c - 递归计算Linux C中目录中和目录下的文件数
- powerbi - Power BI - 匹配两个表中最接近的 3D 点
- linux - 如何为容器的docker容器中的每个不同用户更新不同值的环境变量正在运行