我刚刚问了这个问题,但忘记添加一些信息,将这个问题带到另一个方面。
我正在尝试从源页面代码中获取 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 不是真的,如果我在文本框中输出它,我没有得到任何文本(找不到它)。