2014-07-15 46 views
0

我得到如下給出的結果,但我想通過Xquery單獨提取所有文件名。那麼單獨提取文件的最佳方法是什麼?提取字符串值的正則表達式

db/Staff_Member1.xml db/Staff_Member2.xml db/Staff_Member3.xml db/Staff_Member4.xml db/Staff_Member5.xml db/Staff_Member6.xml db/Staff_Member7.xml db/Staff_Member8.xml db/Staff_Member9.xml db/Staff_Member10.xml db/Staff_Member11.xml db/Staff_Member12.xml db/Staff_Member13.xml db/Staff_Member14.xml db/Staff_Member15.xml 
+0

所以你試圖分裂的結果元素呢? – Unihedron

+0

@你的意思是這個http://regex101.com/r/pS5cD9/3 –

+2

在你要求的正則表達式的標題,但在這裏你要求xquery。是吧? – Dbl

回答

2

鑑於這是由一些的XQuery返回的字符串的順序,我會去的記號化的路徑分隔符/,並進一步進行了最後一段。對於每一串的運行標記化:

let $path := 'db/Staff_Member1.xml' 
let $basename := tokenize($path, '/')[last()] 
return $basename 

正則表達式是不是必需的,只想讓事情變得更加複雜,只有工作開始使用XQuery 3.0,爲的XQuery 1.0可以驗證,如果一個字符串匹配,不返回匹配子。

2

如果你只想從一個路徑的文件名,你可以使用

replace($your-string, ".*/(.*)", "$1") 

這將。1.0工作或3.0