我想用來從行的文本正則表達式C#正則表達式
如:
string xyz = "text/plain; charset=US-ASCII; name=\"anythingfile.txt\"";
,我想從該行
意味着我取anythingfile.txt想要創建匹配模式的正則表達式name =「」並在雙引號之間取字符串 我試過這個
regex re= new regex(@"name="\"[\\w ]*\""")
但沒有得到正確的結果.... PLZ幫助我。
我想用來從行的文本正則表達式C#正則表達式
如:
string xyz = "text/plain; charset=US-ASCII; name=\"anythingfile.txt\"";
,我想從該行
意味着我取anythingfile.txt想要創建匹配模式的正則表達式name =「」並在雙引號之間取字符串 我試過這個
regex re= new regex(@"name="\"[\\w ]*\""")
但沒有得到正確的結果.... PLZ幫助我。
完美的感謝很多....你能告訴我如何/在哪裏學習regualr表達? – user1619672
[MSDN](http://msdn.microsoft.com/en-us/library/az24scfc.aspx)是一個好開始。 –
@ user1619672 this iste:http://www.regular-expressions.info/tutorial.html –
你真的需要正則表達式?簡單的字符串操作可能是不夠的:
var NameValue = xyz.Split(';')
.Select(x => x.Split('='))
.ToDictionary(y => y.First().Trim(), y => y.LastOrDefault());
使其過於複雜。也從來沒有說過,它會以';'結尾' – Anirudha
這些不是'簡單'的字符串操作,你正在對字符串運行一個完整的查詢;) –
@ Fake.It.Til.U.Make.It很可能來自Http Headers,我也從來沒有認爲它會以';'結尾;但';'是一個分隔符char。 –
最好的方法是使用一個命名組:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string xyz = "text/plain; charset=US-ASCII; name=\"anythingfile.txt\"";
Match m = Regex.Match(xyz, "name=\"(?<name>[^\"]+)\"");
Console.WriteLine(m.Groups["name"].Value);
Console.ReadKey();
}
}
可能會更容易,如果你使用普通的字符串字面量,而不是逐字的,因爲你需要做逃跑呢。 –