Extract a string using regex_substr

0

I have a code written in DB2 that will extract the string values between / to different columns.

REGEXP_SUBSTR(RIGHT(TRIM('/BJ/1/10/114/201010049'),LENGTH(TRIM('/BJ/1/10/114/201010049'))-4),'^(.*?)/',1,1),LENGTH(REGEXP_SUBSTR(RIGHT(TRIM('/BJ/1/10/114/201010049'),LENGTH(TRIM('/BJ/1/10/114/201010049'))-4),'^(.*?)/',1,1))

From above code, the string after '/BJ/' will go to column_1, the value after '1/' will go to column_2 etc as below: Column_1 = 1, column_2 = 10, column_3 = 114, column_4 = 202010049. Now I am trying to do the same in redshift. but I am getting below error:

error: Invalid preceding regular expression prior to repetition operator. The error occurred while parsing the regular expression: '^(.*?>>>HERE>>>)/'

Can anyone please help me to fix this?

Joe
已提问 3 个月前180 查看次数
1 回答
2
已接受的回答

Hello Joe,

You can try using the split_part string function as below

select params, split_part(params, '/', 3) as col1, split_part(params, '/', 4) as col3, split_part(params, '/', 5) as col3, split_part(params, '/', 6) as col4 from ( select '/BJ/1/10/114/201010049' as params ) tmp

Please feel free to comment if you have further issues

AWS
专家
已回答 3 个月前
profile picture
专家
已审核 2 个月前
  • Thanks a lot. This works fine.

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则

相关内容