AWS 雅典 regexp_extract
AWS Athens regexp_extract
我正在尝试提取最后一个“/”和“_”字符之间的字符串 'c://abcd /abcdef/0012wetr_1234567890.csv' 的一部分。
0012wetr
我能够提取最后一个“/”字符后的所有内容
select regexp_extract('c://abcd /abcdef/0012wetr_1234567890.csv', '([^/]*)$');
0012wetr_1234567890.csv
不幸的是,我卡住了,不知道如何进一步拆分它。
您的帮助将不胜感激。干杯,A.
也许这有点矫枉过正,但我设法使用下一个前瞻组合获得了所需的结果 - (?!\/)[^\/]+(?=_)
:
select regexp_extract('c://abcd /abcdef/0012wetr_1234567890.csv', '(?!\/)[^\/]+(?=_)');
输出:
_col0
0012wetr
您可以使用 REGEXP_REPLACE
方法:
REGEXP_REPLACE('c://abcd /abcdef/0012wetr_1234567890.csv', '.*/([^_]+).*', '')
参见regex demo。
如果没有匹配需要保留结果为空,在模式末尾添加|.+
:
REGEXP_REPLACE('c://abcd /abcdef/0012wetr_1234567890.csv', '.*/([^_]+).*|.+', '')
详情:
.*
- 除换行字符外的任何零个或多个字符尽可能多
/
- 一个 /
字符
([^_]+)
- 第 1 组:_
以外的任何一个或多个字符
.*
- 该行的其余部分
|
- 或
.+
- 除换行字符外的任何一个或多个字符尽可能多。
我正在尝试提取最后一个“/”和“_”字符之间的字符串 'c://abcd /abcdef/0012wetr_1234567890.csv' 的一部分。
0012wetr
我能够提取最后一个“/”字符后的所有内容
select regexp_extract('c://abcd /abcdef/0012wetr_1234567890.csv', '([^/]*)$');
0012wetr_1234567890.csv
不幸的是,我卡住了,不知道如何进一步拆分它。
您的帮助将不胜感激。干杯,A.
也许这有点矫枉过正,但我设法使用下一个前瞻组合获得了所需的结果 - (?!\/)[^\/]+(?=_)
:
select regexp_extract('c://abcd /abcdef/0012wetr_1234567890.csv', '(?!\/)[^\/]+(?=_)');
输出:
_col0 |
---|
0012wetr |
您可以使用 REGEXP_REPLACE
方法:
REGEXP_REPLACE('c://abcd /abcdef/0012wetr_1234567890.csv', '.*/([^_]+).*', '')
参见regex demo。
如果没有匹配需要保留结果为空,在模式末尾添加|.+
:
REGEXP_REPLACE('c://abcd /abcdef/0012wetr_1234567890.csv', '.*/([^_]+).*|.+', '')
详情:
.*
- 除换行字符外的任何零个或多个字符尽可能多/
- 一个/
字符([^_]+)
- 第 1 组:_
以外的任何一个或多个字符
.*
- 该行的其余部分|
- 或.+
- 除换行字符外的任何一个或多个字符尽可能多。