2012-02-14 7 views
0

と一致するグループを使用して、私はこのようになります文字列を持っています。マッチグループを正規表現で使用しようとしています。ベロウは私のコードです:私の正規表現

Match match = Regex.Match(line, @"<a href=""(?<scr>[^""]*)"" title=""(?<title>[^""]*)"">(?<val>[^<]*)"); 
string val = match.Groups["val"].Value; 

私が引き出す必要があるのは、文字列の "ST"値です。この値を引き出すことができるはずのvalというマッチグループがあります。しかし、この正規表現は私の文字列と一致しません。誰かが私の正規表現に間違っていることを私に助けてくれますか?

+0

なぜ文字列に ""がありますか? –

+0

正確にわからない私は正規表現に慣れていません。私はこれに似たものを持っており、それは私がマッチングしている別の文字列のために働いた。私はこの文字列に同じテクニックを適用しようとしていました。 – user489041

+0

二重引用符は、C#の逐語文字列リテラルでどのように文字がコード化されるかを示します。 /en-us/library/aa691090%28v=vs.71%29.aspx –

答えて

1

どういう意味ですか?私はちょうど新しいコンソールアプリケーションにコードを貼り付け&をカットし、match.Groups["val"]は値​​含まれています

string line = @"<td width=""308"">Services Needed: <a href=""javascript:void(null);"" title=""weekly - 1 hour"">ST</a></td>"; 
Match match = Regex.Match(line, @"<a href=""(?<scr>[^""]*)"" title=""(?<title>[^""]*)"">(?<val>[^<]*)"); 
string val = match.Groups["val"].Value; 
2

をテキストがXMLであることが保証され場合は、XMLツールで簡単に時間を持っていますよりも、正規表現で。

string val = XDocument.Parse(input).Element("td").Element("a").Value; 

また、HTMLパーサーを使用することもできます。正規表現は私の最後の選択肢になります。 HTMLやXMLがどれほどシンプルであっても、regexを使って構文解析すると、常に不具合に遭遇します。