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

Extract a string after certain word Presto SQL

我正在尝试构建正则表达式以在特定字符串之后提取字符串。我的完整字符串是:

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?:

谢谢

你可以使用

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 组值作为函数的结果。