所以,我試着做一個程序,重命名某些文件。在大多數情況下,我想他們這個樣子,條件正則表達式替換C#不MatchEvaluator
[測試] StupidName - 2 [720P] .MKV
但是,我想能夠改變格式,如果需要的話。如果我使用MatchEvaluators,則必須每次重新編譯。這就是爲什麼我不想使用MatchEvaluator。
我遇到的問題是我不知道如何,或者如果它可能,告訴替換,如果找到一個組,包括此字符串。這個我見過的唯一語法就像(?<group>:data)
,但我無法得到這個工作。那麼如果有人有一個想法,即時通訊所有的。
編輯:
當前捕獲的正則表達式=
^(\[(?<FanSub>[^\]\)\}]+)\])?[. _]*(?<SeriesTitle>[\w. ]*?)[. _]*\-[. _]*(?<EpisodeNumber>\d+)[. _]*(\-[. _]*(?<EpisodeName>[\w. ]*?)[. _]*)?([\[\(\{](?<MiscInfo>[^\]\)\}]*)[\]\)\}][. _]*)*[\w. ]*(?<Extension>\.[a-zA-Z]+)$
^(?<SeriesTitle>[\w. ]*?)[. _]*[Ss](?<SeasonNumber>\d+)[Ee](?<EpisodeNumber>\d+).*?(?<Extension>\.[a-zA-Z]+)$
^(?<SeriesTitle>[\w. ]*?)[. _]*(?<SeasonNumber>\d)(?<EpisodeNumber>\d{2}).*?(?<Extension>\.[a-zA-Z]+)$
當前正則表達式替換= [${FanSub}]${SeriesTitle} - ${EpisodeNumber} [${MiscInfo}]${Extension}
使用Regex.Replace,文件TestFile 101.mkv
,我得到[]TestFile - 1[].mkv
。我想要做的就是讓這個[]
如果組FanSub
或MiscInfo
發現僅包括在內。
我可以用MatchEvaluator解決這個問題,因爲我真正得到編譯功能。但這對於該計劃的用戶來說不是一個簡單的解決方案。我唯一需要解決的另一個想法是實際製作我自己的接受特殊語法的Regex.Replace函數。
你的問題不是很清楚...請解釋你想要的更多細節,併發布你的代碼不起作用 – 2010-06-16 19:44:47
希望更清楚。 – Buttink 2010-06-16 20:38:55