2012-06-19 65 views
0

我有一個字符串。下面給出一個例子。正則表達式從字符串獲取url集合

[playlist]\r\npath1=url1\r\npath2=url2\r\npath=url3\r\npath4=url4\r\ncount=1 

如何從上面的字符串中提取路徑屬性值。可能有許多屬性,而不是路徑屬性。

蘇氨酸結果我期待是

url1 

url2 

url3 

url4 

我覺得正則表達式是最好做到這一點。任何有關Rgular表達式的想法(正則表達式)都需要。如何使用string.split方法..哪一個是有效的? ..

在此先感謝

+2

這聽起來像你有一些好主意,使用'Regex'或使用'string.Split'。你有沒有嘗試過嗎?你的結果是什麼? – ean5533

+0

'string.Split'在這裏看起來好像是初始列表。然後一個正則表達式可以用於這些值。 – ashes999

回答

2

那麼這個正則表達式的工作在你的具體的例子:

path\d?=(.+?)\\r\\n 

什麼是不會立即明顯的是,如果在\r\n你的字符串字面上的字符\ r \ n ,或一個回車+新行。上面的正則表達式直接匹配那些字符。如果你的文本實際上是這樣的:

[playlist] 
path1=url1 
path2=url2 
path=url3 
path4=url4 
count=1 

然後這個表達式將工作:

path\d?=(.+?)\n 

以及如何使用,在C#一個簡單的例子:

var str = @"[playlist]\r\npath1=url1\r\npath2=url2\r\npath=url3\r\npath4=url4\r\ncount=1"; 
var matches = Regex.Matches(str, @"path\d?=(.+?)\\r\\n"); 
foreach (Match match in matches) 
{ 
    var path = match.Groups[1].Value; 
    Console.WriteLine(path); 
}