1

我刚刚问了这个问题,但忘记添加一些信息,将这个问题带到另一个方面。

我正在尝试从源页面代码中获取 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 不是真的,如果我在文本框中输出它,我没有得到任何文本(找不到它)。

4

0 回答 0