2013-04-07 63 views
3

我正在尋找清理包含文件路徑的字符串,以刪除用於更安全日誌記錄的父路徑。.Net正則表達式替換 - 多行搜索文件路徑

它需要:

  • 不區分大小寫。
  • 支持無限制捕捉替換。在.NET
  • 工作接受被提供或替換是自動化的(我創建動態搜索模式)的路徑,並且因此發生需要以自動化的方式進行復制的任何字符串福

我想採取一個多行字符串,如:

The file was: C:\\outputpath\\testfile.htm 
And the second file was: C:\\OutputPath\\subfolder\\testfile2.htm' 

,並將它查找和替換輸出:

The file was: testfile.htm 
The second file was: subfolder\\testfile2.htm 

我一直在試圖用這樣的:

var pathToRemove = "c:\\outputPath"; 
var sourceRegex = new Regex(".*(" + pathToRemove + ").*", RegexOptions.IgnoreCase); 
var sanity = sourceRegex.Replace(input, String.Empty, 1000); 

我發現了一個異常

Unrecognized escape sequence \o.

+0

你只關心替換字符串'C:\\ output',或者你想刪除任何對本地文件路徑的引用? – 2013-04-07 05:23:13

+0

只是提到的文件路徑。 – Doug 2013-04-07 05:24:37

+0

如果添加「@」,如@「c:\\ outputPath」,則異常將消失。 – 2013-04-07 05:42:08

回答

3
string pathToRemove = @"c:\\outputpath\\"; 
Regex sourceRegex = new Regex(pathToRemove, RegexOptions.IgnoreCase); 
string sanity = sourceRegex.Replace(input, string.Empty); 
+0

我不能相信這是這麼簡單... – Doug 2013-04-07 06:09:32

+0

這總是簡單的事情,讓我也是。 – PLED 2013-04-07 06:14:31