regex - Invalid regular expression error in snowflake
问题描述
I'm trying to extract date (20200222) from filename while copyinto command in snowflake.
File Name
s3://hadoop/2020002/dbo.DOSSIER_TRANSPORT_20200222.csv.gz
snowflake query
SELECT regexp_substr(metadata$filename, '/(_((\-|\+)?[0-9]+(\.[0-9]+)?).)/' as data FROM '@PRD.OPE_STG
_CMD.SPX_PRD_CMD/' (file_format => 'OTS_TEST.OPA_STG_BENE.OTD_FORMAT', pattern => '.*dbo.DOSSIER_TRANSPORT.*') ;
I tried this regex but its not supporting in snowflake. Getting below error
100048 (2201B): Invalid regular expression: '/(_((-|+)?[0-9]+(.[0-9]+)?).)/', no argument for repetition operator: +
解决方案
利用
REGEXP_SUBSTR(metadata$filename, '_([0-9]+)[.]', 1, 1, 'c', 1)
这是正则表达式演示
模式匹配_
,然后捕获组 1 中的一个或多个数字,然后匹配.
。由于group_num
参数为1
,因此返回值为 Group 1 值。
推荐阅读
- reactjs - 有什么方法可以解决这个错误,每次单击 mui 数据表时,在 StrictMode 中不推荐使用 findDOMNode 的错误?
- node.js - Nodejs exceljs输出文件不正确
- centos - centos: 出现错误名为 no module lnamed “_repo”
- pandas - 过滤 Pandas DataFrame 以仅显示包含字符串列表中所有字符串的行
- javascript - 用于输出数据的 PHP 和用于读取数据的 AJAX
- python - 如何将员工信息从一本字典复制到另一本字典?
- redis - 具有复杂模式匹配的 Redis Pub/Sub
- django - Django过滤列表中的确切值
- apache-spark - 由于火花偏斜,胶水作业失败
- matrix - 更快地计算距离矩阵