1

HTMLコードから文字列を抽出する際に問題があります(これは基本的に正規表現の問題です)。コードは次のとおりです。

string wheretosearch = @"
<td class=""name"">
<div>
<a href=""/addr1.html"" class=""link "">
<span>Title1</span>
</a></td>

[some code]

<td class=""name"">
<div>
<a href=""/addr2.html"" class=""link "">
<span>Title2</span>
</a></td>";

タグ間のタイトルを抽出したい。私の問題は、不明な数の文字を正規表現に入れることができないことです(.* td class=""name"" の後のセクション):

<td class=""name"">.*<span>(?<title>.*)</span>

簡単に言えば、正規表現を見つけ<td class=""name"">て、不明な数の文字の後に の最初の出現を見つけ、その最初と<span>の間の値を取るようにしたいのです。<span></span>

それが実際に行うことは、最後の出現を<span>取得し、最後のタイトルのみを提供します。

編集:

さて、HTML の問題の他に、問題は次のようなものです: 文字列があります:

「これはテキストです: NICE. これは素晴らしいテキストです: NICE TOO.」

「This」、次に不明な文字数、「:」と「.」の間の文字列を取りたいと思います。これはどのように行うことができますか?

もちろん、私はその複雑な式の出現ごとに興味があるので、出力はコレクションで「NICE」と「NICE TOO」になります。

"This.*(?<title>.*)."@urlreaderが述べたように、「NICE TOO」文字列のみを取得するような私の表現では、一致する最大長の文字列が見つかります。

4

2 に答える 2

1
<td class=""name"">.*?<span>(?<title>.*)</span>

これは、正規表現が一致する最大長の文字列を見つけようとするためです。

于 2012-11-06T21:36:47.377 に答える