Teradata 正则表达式

Teradata regular expressions

如何删除第二个小节之后出现的所有内容?

SELECT REGEXP_replace('/admin/home/log', '(/\w+){,2}','');
SELECT REGEXP_replace('/admin/home/out', '(/\w+){,2}','');
SELECT REGEXP_replace('/admin/login', '(/\w+){,2}','');
SELECT REGEXP_replace('/test/login', '(/\w+){,2}','');
SELECT REGEXP_replace('/test/login/file/cam', '(/\w+){,2}','');

解决方案:

/admin/home
/admin/home
/admin/login
/test/login
/test/login

使用regexp_replace():

 SELECT REGEXP_REPLACE('/admin/home/log/test', '([^/]/[^/]*/).*$', '');

相反,如果替换余数,您可以简单地提取第三个斜线之前的所有内容:

SELECT REGEXP_SUBSTR('/admin/home/log', '(/[^/]+){1,2}');