首页 > 解决方案 > Snowflake SQL REGEXP - 在文件扩展名之前的连字符之后捕获

问题描述

希望捕获出现在连字符之后和 .file_extension 之前的客户代码...
示例:DWL-202_EJJFT_Transactions-EOTTFFS001.csv
在这种情况下,我想将其捕获EOTTFFS001为我的帐户代码。

到目前为止,我已经尝试过使用,RIGHT但由于我们的客户有不同的长度代码,有时我最终会得到,-DJTSM001.csv因为在这种情况下,客户有一个五个字母的代码。这种方法也不会删除 CSV。我也尝试将一个RIGHT语句嵌套在另一个RIGHT语句中,但这似乎不起作用。

我的目标是使用REGEXP_SUBSTR.

标签: sqlregex

解决方案


我认为您只想要最后一个句点之前的非连字符字符串:

select regexp_substr(col, '-([^-]+)[.][^.-]+$', 1, 1, 'e')

推荐阅读