在某个单词 Presto SQL 之后提取一个字符串

Posted

技术标签:

【中文标题】在某个单词 Presto SQL 之后提取一个字符串【英文标题】:Extract a string after certain word Presto SQL 【发布时间】:2021-11-11 13:28:00 【问题描述】:

我正在尝试构建一个正则表达式来在某个字符串之后提取一个字符串。我拥有的完整字符串是:

Your full name (TL submitting form): XXX
What is your vendor location?: Phoenix

要提取的作品是供应商位置,在上面的例子中是 Phoenix

我正在使用下面的代码:

LTRIM(RTRIM(REGEXP_EXTRACT(description_text, '(What is your vendor location\?\:)(.*?)(?=)'))) AS vendor_location

使用这段代码的结果是:

Task ID.   Date          Vendor location
90836966 2021-05-14. What is your vendor location?:

谢谢

【问题讨论】:

【参考方案1】:

你可以使用

REGEXP_EXTRACT(description_text, 'What is your vendor location\?:\s*(.+)', 1)

请参阅regex demo。

What is your vendor location\?:\s*(.+) 正则表达式匹配

What is your vendor location\?: - What is your vendor location?: 文字 \s* - 零个或多个空格 (.+) - 第 1 组:尽可能多的除换行符以外的任何一个或多个字符。

最后一个 1 参数提取第 1 组值作为函数的结果。

【讨论】:

效果很好。谢谢=D

以上是关于在某个单词 Presto SQL 之后提取一个字符串的主要内容,如果未能解决你的问题,请参考以下文章

从字段 sql/presto 中提取子字符串

presto-SQL

presto-SQL

presto-SQL

presto-SQL

presto-SQL