2017-01-31 41 views
-2

我試圖通過採用路由的第一個目錄來創建正則表達式。如何從路徑中提取根目錄

例如:

/home/oracle/file1.dbf 
/home/oracle/file2.dbf 
/usr/oracle/file3.dbf 
/usr/oracle/file3.dbf 

您應該返回:

/home 
/home 
/usr 
/usr 

我試過下面的查詢:

SELECT substr(file_name,instr(file_name,'/')-1) as FILE_NAME 
FROM dba_data_files; 
+0

爲什麼您的查詢不起作用? –

+0

這不使用正則表達式,而是使用簡單的字符串函數。 regexpr_substr可能是一個正則表達式解決方案 – Aleksej

+0

爲什麼在標題中有「正則表達式」?這不是有利的,原因有兩個:首先,如果沒有正則表達式(如MT0所示),問題有更有效的解決方案**;第二,你的頭銜應該總是描述你正試圖解決的問題,而不是你想到的解決方案。 (無論如何,在這種情況下並沒有使用正則表達式,但即使它做到了......)諸如「如何從路徑中提取根目錄」這樣的標題會更有意義,並且不會建議只有一個特定的應該使用方法。 – mathguy

回答