RTRIM字符串以增量编号结尾

时间:2014-06-13 13:49:29

标签: oracle10g

我正在尝试将跟随字符串缩小到只是用户名。最后的数字总是不同的。我可以LTRIM就好了,但是当我尝试使用RTRIM时,我很难删除用户名右侧的所有内容。

C:\documents and settings\[USERNAME]\my documents\reports\204452.pdf

RTRIM会在这种情况下工作吗?如果没有,那么正确的方向上的一点将会受到赞赏。

感谢。

1 个答案:

答案 0 :(得分:1)

如果用户名始终是完整路径的第三级,则可以使用正则表达式:

regexp_substr(<file path>, '[^\\]+', 1, 3)

例如:

select regexp_substr('C:\documents and settings\[USERNAME]\my documents\reports\204452.pdf', '[^\\]+', 1, 3)
from dual;

或使用子查询只是为了使其更具可读性:

select regexp_substr(file_path, '[^\\]+', 1, 3)
from (
  select 'C:\documents and settings\[USERNAME]\my documents\reports\204452.pdf'
  as file_path
  from dual
);

REGEXP_SUBSTR(FILE_PATH,'[^\\]+',1,3)
-------------------------------------
[USERNAME]                            

请注意,必须在模式中转义反斜杠。