在redshift中使用REGEX_SUBSTR(),我想搜索一个字符串,并提取字符串中“at”之前的所有单词。
我在regex tester上测试了[^.]*(?=\sat)
,它工作正常。
但是在Redshift中我不断地得到正则表达式无法解释的错误。
我试过使用双反斜杠(\\s
),但也没有成功。由于某些原因,在正向前瞻Assert中,Redshift无法识别任何转义字符。
error: Invalid preceding regular expression prior to repetition operator. The error occurred while parsing the regular expression: '[^.]*(?>>>HERE>>>=\sat)'.
code: 8002
context: T_regexp_init
query: 0
location: sql_regex_funcs.hpp:175
在一个完美的世界里
SELECT regexp_substr('withdrawal from Credit Union at main avenue', '[^.]*(?=\\sat)')
将返回 * 从信用社提款 *
1条答案
按热度按时间yrdbyhpb1#
你可以用
这里
([^.]*)\sat
尽可能多地匹配除.
以外的零个或多个字符,最多匹配空格和at
子字符串1, 1, 'e'
意味着搜索从输入字符串中的第一个字符开始,第一个出现的字符将被返回,返回的子字符串将是第一个捕获组值,即与第一个也是唯一一个带括号的正则表达式部分([^.]*)
匹配的值。