我正在尝试使用雪花 regexp_replace 从字符串中提取数据
这是我的字符串
我只想要日期值,在本例中它应该是 20210101
。
我知道如何使用 (?<=DATE_ID=)(.*)(?=/)
从正常的正则表达式中提取它,但很明显,snowflake 无法识别问号:
Status: ERROR
(SQLSTATE: 2201B, SQLCODE: 100048): Invalid regular expression: '(?<=DATE_ID=)(.*)(?=/)', no argument for repetition operator: ?
有谁知道如何在雪花中做到这一点?
答案 0 :(得分:1)
您可以将模式与捕获组一起使用:
pubspec.yaml
参见regex demo。
详情:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.0
hello:
path:../hello/
- 匹配和消费的文本SELECT REGEXP_SUBSTR(col, 'DATE_ID=([^/]*)', 1, 1, 'e', 1)
SELECT REGEXP_SUBSTR(col, 'DATE_ID=([^/]*)', 1, 1, 'e')
- 除捕获到组 1 中的 DATE_ID=
字符之外的任何零个或多个字符。模式后面的前两个 ([^/]*)
参数是位置和出现参数,/
告诉引擎返回第一个捕获组的内容。因此,您可以保留最后一个 1
参数(组号),也可以省略它。
在文档中查看有关 REGEXP_SUBSTR
的更多信息。