2017-06-15 55 views
0

喜歡從我會如何只檢索文件名不貪擴展

markets-map.es6.js 
filename.abc.es6.js 
filename.ab.def.es6.js 
abc.js 
defghi.es6.js 
location-map.js 
demographics-map.es7.js 
demographics-map.tar.bz 
demographics-map.tar.zip 
demographics-map.tar.ball 

得到如下:markets-mapfilename.abcfilename.ab.deffilename.abcabcdefghilocation-mapdemographics-mapdemographics-map用正則表達式。你能幫我嗎?

+0

什麼是規則? – revo

+0

你在找什麼,一切都到第一個點?這並非總是如此。或剝離某些擴展?需要稍微澄清一下,您希望輸出結果基於規則。 – sniperd

+0

輸出在我的問題的最後幾行給出。獲取第一部分,點號爲 ,比如.abc,.ab(用戶爲文件名定義的字符串),但不會獲得.tar,.es6,.es7等擴展名,當然對於.js,.bz,。 zip,.ball。 YCF_L能夠讓它正確。 –

回答

2

你的問題是具體的,所以你必須解決這個問題的一種方式,它是由案件這裏來解決它的情況是一個正則表達式,你可以使用:

(.*?)(((\.es\d+)?\.js)|(\.tar\.(bz|zip|ball))) 

因此,你可以在這裏只需要第一組正則表達式演示:

demo regex


Input       Output 

markets-map.es6.js  -> markets-map 
filename.abc.es6.js  -> filename.abc 
filename.ab.def.es6.js -> filename.ab.def 
abc.js     -> abc 
defghi.es6.js    -> defghi 
location-map.js   -> location-map 
demographics-map.es7.js -> demographics-map 
demographics-map.tar.bz -> demographics-map 
demographics-map.tar.zip -> demographics-map 
demographics-map.tar.ball -> demographics-map 
+0

這有效。謝謝。 –

+0

歡迎你@PristineKallio :) –