0

ページを memo1.text にダウンロードしています。このテキストでは、いくつかの値を変数に抽出する必要があります。ダウンロードしたコードの必要な部分:

<tr>
<td style="text-align: left;">Nazwa1</td>
<td style="text-align: right;">    88.</td>
<td style="text-align: center;"> 20%</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">108 h</td>
<td style="text-align: center;">     1.00000</td>
<td style="text-align: right;">8974296.0</td>
<td style="text-align: center;"> 1.00</td>
</tr>
<tr>
<td style="text-align: left;">Nazwa2</td>
<td style="text-align: right;">   282</td>
<td style="text-align: center;">---</td>
<td style="text-align: right;">261</td>
<td style="text-align: right;">1:26 h</td>
<td style="text-align: center;">     0.00212</td>
<td style="text-align: right;"> 312001.9</td>
<td style="text-align: center; color: #00cc00; "> 1.02</td>
</tr>
<tr>
<td style="text-align: left;">Nazwa3</td>
<td style="text-align: right;">  2747</td>
<td style="text-align: center;">100%</td>
<td style="text-align: right;">1833</td>
<td style="text-align: right;">0:27 h</td>
<td style="text-align: center;">     0.02239</td>
<td style="text-align: right;">    364.4</td>
<td style="text-align: center; color: #00cc00; "> 1.19</td>
</tr>
<tr>
<td style="text-align: left;">Nazwa4</td>
<td style="text-align: right;">   413.6</td>
<td style="text-align: center;">100%</td>
<td style="text-align: right;">281</td>
<td style="text-align: right;">0:6 h</td>
<td style="text-align: center;">     0.00358</td>
<td style="text-align: right;">  32812.1</td>
<td style="text-align: center; color: #cc0000; "> 0.78</td>
</tr>

「Nazwa3」テーブルから変数値「1.19」を抽出する必要があります。テーブル内のすべてが変数で、名前「nazwa3」のみが定数です。

uses
  regexpr;

function searchandextract(InputStr : string) : string;
var
  R : TRegExpr;
begin
  Result := '';
  R := TRegExpr.Create;
  try
    R.Expression := '<td style="text-align: left;">Nazwa3</td>(.+?)"> ([0-9\.]+)</td>(.+?)</tr>';
    if R.Exec(InputStr) then
    begin
      Result := R.Match[2];
    end;
  finally
    R.Free;
  end;
end;


  Label1.Caption := searchandextract(Memo1.Text);

しかし、この関数の結果は空で、理由がわかりませんか?

4

1 に答える 1

1

正規表現を使用して HTML ファイルを解析しないでください。むしろ、HTML パーサー ライブラリを調べてください。delphi ではDIHtmlParserまたはhtmlpを使用できます。

于 2013-04-21T16:25:31.193 に答える