/// <summary> /// 正则表达式筛选,删除不符合指定正则表达式的字符串的 /// </summary> /// <param name="RegexString">正则表达式字符串组</param> /// <param name="S">输入字符串组</param> /// <param name="O">输出字符串组</param> private void RegexFilter( string RegexString, ref List <string> S, ref List <string> O ) { List <string> _S; if (S == null) { return; } if (O == S) { _S = new List <string>(S); } else { _S = S; } O = new List <string>(); Regex reg; Delegate_OutputInfo doi = new Delegate_OutputInfo(OutputInfo); try { reg = new Regex(RegexString); this.Invoke(doi, "...", Color.Green); } catch { this.Invoke(doi, "正则表达式有误", Color.Red); return; } foreach (string eachString in _S) { //存在匹配字符串 if (reg.IsMatch(eachString)) { O.Add(eachString); } } }
private void RenameButton_Click(object sender, EventArgs e) { FileInfo files; if (RefreshShowResult()) { Delegate_OutputInfo doi = new Delegate_OutputInfo(OutputInfo); FileStream logFile; StreamWriter logFileWriter; if (File.Exists(FilePath + "\\RenameLog.txt")) { logFile = new FileStream(FilePath + "\\RenameLog.txt", FileMode.Open, FileAccess.Write); } else { logFile = new FileStream(FilePath + "\\RenameLog.txt", FileMode.Create, FileAccess.Write); } logFileWriter = new StreamWriter(logFile); logFile.Seek(0, SeekOrigin.End); logFileWriter.Write("\n----------------------------------------------\n"); try { for (int index = 0; index < filterFiles.Count; index++) { files = new FileInfo(FilePath + "\\" + filterFiles[index]); files.MoveTo(FilePath + "\\" + renameList[index]); logFileWriter.Write(DateTime.Now.ToString() + " " + filterFiles[index] + " --> " + renameList[index] + "\n"); } RefreshShowResult(); this.Invoke(doi, "批量重命名成功", Color.Green); logFileWriter.Write(DateTime.Now.ToString() + " rename succeed\n\n"); } catch { RefreshShowResult(); this.Invoke(doi, "批量重命名未完全成功", Color.Red); logFileWriter.Write(DateTime.Now.ToString() + " rename abort\n\n"); } logFileWriter.Close(); logFile.Close(); } }
/// <summary> /// 提取字符串 /// </summary> /// <param name="Input"></param> /// <param name="ExtractString"></param> /// <param name="Keys"></param> private string ExtractKey(string Input, List <string> Keys) { string temp; Regex reg; Delegate_OutputInfo doi = new Delegate_OutputInfo(OutputInfo); try { reg = new Regex(Keys[0] + Keys[1] + Keys[2]); ; this.Invoke(doi, "...", Color.Green); } catch { this.Invoke(doi, "正则表达式有误", Color.Red); return(""); } temp = reg.Match(Input).Value; reg = new Regex(Keys[0]); temp = temp.Remove(0, reg.Match(temp).Value.Length); reg = new Regex(Keys[1]); return(reg.Match(temp).Value); }