C#正则表达式提取HTML 中 WINDOW.OPEN 地址 10

一段HTML代码如下,<html><head><metahttp-equiv="Content-Language"content="zh-cn"><metaname="G... 一段HTML代码如下,
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>批量调试用</title>
<script language="javascript">
function editit(id)
{
page = "adminadminedit.asp?adminid=" + id;
window.open(page, "AAAAAA");
}
</script>
<style>
body{FONT-FAMILY: 微软雅黑;}
.btn{width:80px; font-size:14px; height:28px;}
</style>
</HEAD><link rel="stylesheet" type="text/css" href="css/css.css">
<BODY >
<p><input id='btnClose' name='btnClose' type='button' value='退出系统' onclick='editit(75);' />
</BODY></html>
问题:提取出btnClose的onclice执行的函数editit(75),然后在上面的代码中提取出这个函数中window.open打开的URL地址,并且把函数中变量75代入。最后得到结果adminadminedit.asp?adminid=75
展开
 我来答
syht2000
高粉答主

2014-11-28 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
string html = "这是你的html";
Match m1 = Regex.Match(html, @"onclick='editit\((\d+)\);'");
Match m2 = Regex.Match(html, "page\\s*=\\s*\"(adminadminedit.asp\\?adminid=)");
if (m1.Success && m2.Success) Console.WriteLine(m2.Groups[1].Value + m1.Groups[1].Value);
更多追问追答
追问
兄弟,上面的HTML代码是在一字符串变量里,程序事先只知道有ONCLICK 事件,并不知道具体执行的函数名称,有不知道这个函数要打开的页面是什么,就是说ONCLICK事件后的函数需要动态获取,WINDOW.OPEN打开的页面事先也并不知道。我打开这个页面后程序去判断,最后获取window.open的页面地址。
追答
如果你的意思是代码完全没有规律,那是不能用正则什么来处理的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式