2013-02-02 56 views
0

我希望我的PHP腳本搜索文件夾中的文件,並且我希望ReGEX只從它獲取主文件名。ReGEX只選擇TVShow名稱

這些文件是帶有fansub組的TVShows等,但我只需要顯示名稱。

[Final8]Nazo no Kanojo X 01-13 + OVA (BD 10-bit 1920x1080 x264 FLAC) 
[Final8]Nazo no Kanojo X 01-13 + OVA (BD 10-bit 1280x720 x264 AAC) 
[HorribleSubs] OreShura - 05 [1080p].mkv 
[HorribleSubs] OreShura - 05 [720p].mkv 
[Hatsuyuki]_Naruto_Shippuuden_-_298_[720p][3FF2ABFE].mp4 
[Commie] Mondaiji-tachi ga Isekai kara Kuru Sou Desu yo - 04 [18B50CAF].mkv 
[FFF] Maoyuu Maou Yuusha - 05 [E84974F0].mkv 
[Commie] Chihayafuru 2 - 04 [AB85B68E].mkv 
[gg][email protected]_-_04_[4D5B88AF].mkv 
[Nutbladder] JoJo's Bizarre Adventure - 17 
[UTW]_Shinsekai_Yori_-_18_[h264-720p][FAC060C0].mkv 

我想在括號[]和像集數和等等等等 文件名的所有其餘部分去掉字幕組的名字,我想只是主文件名像謎沒有彼女,我女友與青梅竹馬的慘烈修羅場,Naruto_Shippuuden(或更好的火影忍者疾風傳)等等。

我試着自己做一個REGEX,但它不好,任何幫助將不勝感激,如果可能的話,請看看你是否也可以評論什麼是ReGEX的部分做什麼,就像我可以學習的那樣。

回答

0

這個正則表達式會給你標題,但它看起來不完美。它的名字中仍然會出現任何破折號和下劃線。

(?<=])[^\.][\D]+ 

下面是使用一些您所提供的字符串的工作示例:http://fiddle.re/hz9b

那麼你可以做第二遍,以去除其中的任何不想要的字符。

+0

嘗試它在RegExr,它似乎正在工作,但有兩個問題: 正如你剛纔所說,文件名仍然有破折號和下劃線,如果可能的話,它可以在相同的正則表達式中刪除?否則我會在某種程度上在php中使用str_replace 第二個問題是,如果它以字母開頭,它也選擇括號中的CRC代碼 請點擊這裏[link](http://regexr.com?33kq9) PS:你如何在評論中添加換行符?在結尾處有兩個空格並按Shift + Enter不起作用 – user1972802

+0

感謝所有的幫助,只是在命中並嘗試執行後得到了所有的結果,我使用的最終ReGex是 '(?<=])[^ \。] [ \ D] + [^ \ d \ s _-] {4}' 並且必須使用更多的PHP函數去除空格和下劃線,但現在全部排序,非常感謝您的幫助.....如果您不記住,你能否解釋一下你建議的ReGex的每個部分都會做什麼?我只有70%的理解 – user1972802

+0

是的,當然!看看這個網站,這非常有用。 http://www.regex101.com/r/lR2sQ5 – Michael