Redshift / 正则表达式(Positive Lookbehind 和 Positive Lookahead)不起作用

Posted

技术标签:

【中文标题】Redshift / 正则表达式(Positive Lookbehind 和 Positive Lookahead)不起作用【英文标题】:Redshift / Regular Expression (Positive Lookbehind and Positive Lookahead) does not work 【发布时间】:2019-12-10 23:26:27 【问题描述】:

我是 RegEx 的新手,我正在尝试从以下文本中的键:值对中提取以下值 -

要提取的值 -

RDU5

字符串 - "stopCode":"RDU5"

我正在使用以下表达式 - ((?

除了 Redshift 之外,此 RegEx 工作得非常好,因为 Redshift 不支持 Positive Lookbehind 和 Positive Lookahead。

您能否建议使用 Redshift 替代它?我已经使用了https://docs.aws.amazon.com/redshift/latest/dg/pattern-matching-conditions-posix.html,但无法修改它以在 Redshift 上工作。

任何建议将不胜感激。

谢谢!

【问题讨论】:

顺便说一句,欢迎来到 SO Rahul。你知道在我的国家你的名字很常见。 【参考方案1】:

假设您想要与值一起使用的键,您想要类似的东西

/"([^"]*)":"RDU5"/

但如果您的数据是 JSON,那么您应该使用 JSON 解析器来分析它们。

【讨论】:

我需要与键关联的值。在这种情况下(“stopCode”:“RDU5”),我需要输出为 RDU5,仅此而已。另外,我运行了你的代码,但它给了我空白。

以上是关于Redshift / 正则表达式(Positive Lookbehind 和 Positive Lookahead)不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 redshift 中使用正则表达式

Redshift - 根据某些规则应用正则表达式

如何从 Redshift 的正则表达式组中选择第一个结果?

Redshift 正则表达式错误?

正则表达式字符串脱离 Redshift

正则表达式:获取 AWS Redshift 中两个字符串之间的值