この質問をしたばかりですが、これを別の側面に持ち込む情報を追加するのを忘れていました.
ソース ページ コードから 2 つの文字列を取得しようとしています。2 つの文字列は次の行にあります。
<td style="cursor:pointer;" class="" onclick="NewWindow('U_nQgAjU_tdUnfcA7lT5opoTLyLdslWDTpiNzcdkLoHlobS_HbujMw..', 'bpvsid=nvnN2JFJqJc.&dcz=1', 'bpvstage_edit', '1200', '800')" onmouseout="HideHover();"><img src="gfx/info.gif" alt="" tipwidth="450" ajaxtip="openajax.php?target=modules/bpv/bpvstage_hover_info.php&rid=2567&oid=3511&bpvsid=921434&bpvname=test%bv" /></td>
私が取得しようとしている2つの文字列:
U_nQgAjU_tdUnfcA7lT5opoTLyLdslWDTpiNzcdkLoHlobS_HbujMw..
と
bpvsid=nvnN2JFJqJc.&dcz=1
ただし、ソースページ全体を検索しているため、onclick="NewWindow(') で単純に分割することはできません。これを検索すると、他に 20 件の検索結果があるためです。
私はそれを見つけました:class="" onclick="NewWindow('
は一意です (長いコードの前のコード)。
この文字列がソースコード内の唯一のテキストである場合に機能する非常に良い返信がいくつかありました。例:
var match = Regex.Match(reader.ReadToEnd(), @"onclick=""NewWindow\('([^']*)',\s*'([^']*)',.*");
if (match.Success)
{
string longId = match.Groups[1].Value;
string other = match.Groups[2].Value;
}
ただし、変更しようとすると:reader.ReadToEnd(), @"onclick=""NewWindow\('([^']*)',\s*'([^']*)',.*");
に
reader.ReadToEnd(), @"class="" onclick=""NewWindow\('([^']*)',\s*'([^']*)',.*");
結果が得られません.match.Succesはtrueではなく、テキストボックスに出力するとテキストが表示されません(見つかりませんでした)。