asp.net C#中的文本替换算法

olymi 2012-10-11 10:26:47
要替换html中的<script>标签,凡是遇到相邻的script,就把它们合并并换成程序输出的,比如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="themes/KeepItSimple/css/reset.css" rel="stylesheet" type="text/css" />
<script src="Assets/Scripts/comment.js" type="text/javascript"></script>
<script src="Assets/Scripts/cookies.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<script src="Assets/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="Assets/Scripts/jquery.validate-vsdoc.js" type="text/javascript"></script>
<js>
<script src="js/cookies.js" type="text/javascript"></script>
<script src="js/comment.js" type="text/javascript"></script>
</js>
<js>
<script src="js/comment.js" type="text/javascript"></script>
<script src="js/cookies.js" type="text/javascript"></script>
<script src="Assets/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="Assets/Scripts/jquery.validate-vsdoc.js" type="text/javascript"></script>
</js>
<js>
<script src="Assets/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="Assets/Scripts/jquery.validate-vsdoc.js" type="text/javascript"></script>
</js>
</div>
</form>
</body>
</html>

要换成

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="themes/KeepItSimple/css/reset.css" rel="stylesheet" type="text/css" />
<script src="..." type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<script src=".." type="text/javascript"></script>
<js>
<script src=".." type="text/javascript"></script>
</js>
<js>
<script src=".." type="text/javascript"></script>
</js>
<js>
<script src="..." type="text/javascript"></script>
</js>
</div>
</form>
</body>
</html>

也就是说只要是相邻的(一个script后面还是一个script)就把它们合并,合并算法我已经有了,但就是合并第一个后第二个index就变了,用substring合并第二时就会出现在不应该出现的位置,以此类推,最后还有出现溢出出错。。如何算法?
...全文
171 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
olymi 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

不就是把<js>对间的内容替换吗
C# code

StreamReader reader = new StreamReader("c:\\temp\\1.txt",Encoding.Default);
string source = reader.ReadToEnd();
Regex reg = new Regex(@……
[/Quote]现在那个js 不要了,其实这只是js gzip的,在用户不设置成gzip的话,输出一个<js>标签很难看,因为程序需要,不可能把标签去除.所以现在把只要出现script 就gzip,如果是几个相邻就一起gzip.之前包含在<js>里边好办,现在有点难.
bdmh 2012-10-11
  • 打赏
  • 举报
回复
不就是把<js>对间的内容替换吗

StreamReader reader = new StreamReader("c:\\temp\\1.txt",Encoding.Default);
string source = reader.ReadToEnd();
Regex reg = new Regex(@"(?is)(?<=<js>).*?(?=</js>)");
source = reg.Replace(source, @"<script src=""..."" type=""text/javascript""></script>""");
oh51888 2012-10-11
  • 打赏
  • 举报
回复
你都没发出来合并的算法,大家怎么给你找错?= =!
内容概要:本文聚焦风电出力的不确定性问题,采用拉丁超立方抽样(Latin Hypercube Sampling, LHS)方法生成具有统计代表性的风电出力初始场景集,有效克服传统蒙特卡洛抽样存在的样本冗余与收敛速度慢的缺陷。为进一步降低场景数量以提升电力系统优化调度的计算效率,研究结合K-means聚类、快速前向选择等场景缩减技术,对生成的高维场景进行聚合与概率修正,保留最具代表性的典型场景及其对应概率分布。整个建模流程在Matlab平台上编程实现,形成一套完整的“抽样—生成—缩减—验证”的不确定性建模框架,为含高比例风电的电力系统提供高质量、低冗余的输入场景集,显著增强随机优化、鲁棒优化等模型的求解效率与工程实用性。; 适合人群:具备电力系统分析、概率统计基础及Matlab编程能力,从事新能源并网、电力系统优化调度、不确定性建模与风险评估等方向的科研人员、工程技术人员及研究生。; 使用场景及目标:①应用于风电主导的电力系统随机优化调度、机会约束规划、鲁棒经济调度等场景,提升模型对不确定性的刻画能力;②帮助研究者深入掌握拉丁超立方抽样与场景缩减的核心原理与实现方法,构建高精度的不确定性输入模型;③为复杂电力系统仿真提供经过科学约简的典型场景集,平衡计算精度与效率,支撑实际工程决策。; 阅读建议:建议读者结合提供的Matlab代码逐模块调试与运行,重点理解LHS在多维空间的分层抽样机制、场景距离度量方式及聚类缩减过程的概率守恒原则,关注缩减前后场景集的分布保真性与计算效率提升效果,以全面掌握风电不确定性建模的关键技术路径。

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧