2014-11-01 17 views
0

我有這樣一個配置文件:正則表達式如何讓文件路徑

#time(Second or HH:ss:mm) exepath 
5 c:\windows\notepad 
18:38:00 c:\windows\notepad.exe 
18:38:00 "c:\path\path path2\program.exe" command 

我想通過正則表達式來獲取時間,文件路徑和命令。我想:

string line = "18:38:00 c:\windows\notepad.exe.....";//from config file 
string reg = @"(\S*)("")?(.*)("")?"; 

Regex regex = new Regex(reg, RegexOptions.IgnoreCase); 
Match m = regex.Match(str); 

if(m.Success) 
    { 
     Console.Write(" {0} ", m.Groups[1]); 
     Console.Write(" {0} ", m.Groups[2]); 
     Console.Write("/n"); 
    } 

但就是不行

+0

@AvinashRaj我希望得到的時間,文件路徑和命令 – zt9788 2014-11-01 11:13:29

回答

1

您忘記添加要匹配的模式空間之間。

@"(?m)^(\S*)\s*""?([^""\n]*)""? *(.*)?$" 

DEMO

+0

想你,但是當路徑具有空間,它得到了錯誤的文件路徑,如18時38分00秒「C :\ path \ path path2 \ program.exe「我將得到18:38:00,c:\ path \ path,path2 \ program.exe – zt9788 2014-11-01 11:23:47

+0

試試我的更新。在這裏看演示http://regex101.com/r/dI1cP2/7 – 2014-11-01 11:25:34

+0

好吧,這是工作,非常感謝你 – zt9788 2014-11-01 11:26:19