2012-02-28 15 views
0

C#で正規表現を使用するのが難しいです。私がする必要があるのは、特定の文字列を見つけてその文字列内の特定の単語だけを保持することです。ここでC#正規表現.Replace

は私のコードです:私は入れて色違いがあることができるのでここで

reg = new Regex("<td></td><td><Span class=\"abc\"><Span style=\"color:#......;\"><B>(.*?)</td></tr>"); 

は、私が取得する一意の文字列です......(コードの色は常に6つの文字である)、および(。*?)は、私が保存したい特定の単語です。

this.varToSave = reg.Match(data).Value.Replace("<td></td><td><Span class=\"abc\"><Span style=\"color:#......;\"><B>", "").Replace("</td></tr>", ""); 

は、私はすべてを消去し、唯一の私の言葉を維持したいが、それは動作しません(*?。):

その後、それはこのように書きます。 ( ""、 "")のみが消去されます。私は置き換えコードの "......"の問題だと思いますが、これを修正する方法はわかりません。

ありがとうございます。

+5

HTMLを正規表現で解析しないでください。ユーモラスな説明はhttp://stackoverflow.com/a/1732454/960195を参照してください。 –

+0

Regexを使用する必要がない場合、探しているのは "Web Scraper"ですか?おそらく:http://stackoverflow.com/questions/4377355/i-need-a-powerful-web-scraper-library – Jason

+0

もう一つのリンクhttp://stackoverflow.com/questions/1732348/regex-match-open-tags -except-xhtml-self-contained-tags/1758162#1758162あなたは[HTML Agility Pack](http://htmlagilitypack.codeplex.com/)を試しましたか? –

答えて

0

こちらがお役に立てば幸いです。それはあなたのためのカラーコードを抽出します。あなたがそれを抽出するか置き換えたいかどうかは分かりません。いずれにしても、これは助けてください:

 var textInput = "<td></td><td><Span class=\"abc\"><Span style=\"color:#......;\"><B>XYZ</td></tr>"; 
     var reg = new Regex(@"\<B\>(?<myText>.+?)\</td\>\</tr\>$"); 

     var matches = reg.Matches(textInput); 

     Console.WriteLine("Text found was '{0}'", matches[0].Groups["myText"].Value); 

幸運。

+0

ありがとうございます、しかし、私は何を意味するのか理解できませんでした(私の英語は悪いです^^)。私はHTMLページを持っていて、ユニークな単語を取り出そうとしています(しかし、私はそれが何であるかを事前に知っていません。私はオリジナルの投稿に投稿したHTMLコードに囲まれていることを知っています)。ですから、配列やコレクションは必要ありません。マッチが1つしかないからです。だから私はそのコードを見つけて、その中間に私が保存したいキーワードですので、私はすべてを ""(言い換えれば、消去)で置き換えます。それから私のキーワードだけが残っていて、私はそれを保存します。基本的にそれは私がしたいことです。 – user1238882