sql - Snowflake SQL REGEXP - 在文件扩展名之前的连字符之后捕获
问题描述
希望捕获出现在连字符之后和 .file_extension 之前的客户代码...
示例:DWL-202_EJJFT_Transactions-EOTTFFS001.csv
在这种情况下,我想将其捕获EOTTFFS001
为我的帐户代码。
到目前为止,我已经尝试过使用,RIGHT
但由于我们的客户有不同的长度代码,有时我最终会得到,-DJTSM001.csv
因为在这种情况下,客户有一个五个字母的代码。这种方法也不会删除 CSV。我也尝试将一个RIGHT
语句嵌套在另一个RIGHT
语句中,但这似乎不起作用。
我的目标是使用REGEXP_SUBSTR
.
解决方案
我认为您只想要最后一个句点之前的非连字符字符串:
select regexp_substr(col, '-([^-]+)[.][^.-]+$', 1, 1, 'e')
推荐阅读
- python - 如何修复对 Twilio 的 python POST 请求上的“不支持的媒体类型”错误
- android - 替换后如何回到第一个Android Fragment
- css - 如何使用 Create React App 解决关键的 css?
- c++ - 为什么我会收到“从 'Queue*/Stack*' 到 'int' 的无效转换”错误消息?
- azure-service-fabric - Service Fabric 负载均衡器未正确转发流量
- java - 如何使用另一个类中的布尔方法来检查字符串参数?
- php - 为什么我不能在这个 mysql 表中存储带有重音字符的字符串?
- python - 如何从压缩文件夹中加载 jinja2 模板
- reactjs - 无法使用 Axios 从 React 中的 API 调用映射数据
- android - 约束布局意外边距