2013-11-21 25 views
0

我有一個字符串變量,看起來像這樣 -提取從所有的線條組成的圖案在一個字符串

string Output = "C:\src\Hello1.txt -> C:\Temp\hewvjke\Hello1.txt 
    C:\src\Hello.txt -> C:\Temp\hewvjke\Hello.txt 
    2 File(s) copied"; 

基本上它包含"<source file> -> <destination file>" n次。

我想要一個可以提取目標文件列表的正則表達式。

我想輸出變量是這樣的

string afterRegex = "C:\Temp\hewvjke\Hello1.txt 
C:\Temp\hewvjke\Hello.txt 
    2 File(s) copied" 

我怎樣才能做到這一點?

+2

因此,第一個片段不是代碼,而是一個字符串文字? –

+0

你目前的代碼是做什麼的? – CodeCaster

+0

源輸出中路徑末端之間是否有返回字符? –

回答

2

問題:我認爲你有一個文件,例如:myfile包含以下3條線與

==source path==  ==destination path== 
C:\src\Hello1.txt -> C:\Temp\hewvjke\Hello1.txt 
C:\src\Hello.txt -> C:\Temp\hewvjke\Hello.txt 
    2 File(s) copied 

你想從上面的文件內容刪除源路徑。
所以預期輸出應該如下:

C:\Temp\hewvjke\Hello1.txt 
C:\Temp\hewvjke\Hello.txt 
     2 File(s) copied 

計劃:

  String[] lines = System.IO.File.ReadAllLines("myfile.txt"); 
      String[] newLines = new String[lines.Length]; 
      int i=0; 
      foreach (String line in lines) 
      { 
       newLines[i]=(line.Contains(">"))?line.Split('>')[1]:line; 
       i++; 
      } 
      System.IO.File.WriteAllLines("myfile.txt",newLines); 

輸出:

C:\Temp\hewvjke\Hello1.txt 
C:\Temp\hewvjke\Hello.txt 
     2 File(s) copied 

注:執行上面的語句myfile包含以下文本後:如果你有,請讓我知道螞蟻做別的事。

+0

@CodeCaster:謝謝先生,我已經添加了我的假設,如果我錯了,請糾正我。 –

0

考慮下面的代碼...

string inputMessage = @"C:\src\Hello1.txt -> C:\Temp\hewvjke\Hello1.txt 
         C:\src\Hello.txt -> C:\Temp\hewvjke\Hello.txt 
         2 File(s) copied"; 
string outputMessage = Regex.Replace(inputMessage, @".* -> " , ""); 

祝您好運!

相關問題