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合并第二时就会出现在不应该出现的位置,以此类推,最后还有出现溢出出错。。如何算法?
...全文
165 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
  • 打赏
  • 举报
回复
你都没发出来合并的算法,大家怎么给你找错?= =!
内容概要:本文围绕“多主体综合能源系统+分布式ADMM研究”展开,系统阐述了交替方向乘子法(ADMM)在多主体综合能源系统的分布式优化应用,提供了完整的Matlab代码实现。研究聚焦于多利益主体之间的协同优化问题,通过建立合理的数学模型,采用ADMM算法实现去心化的求解架构,有效保障各主体的数据隐私性与决策自主性,同时提升整体系统的计算效率与优化性能。内容涵盖系统建模、优化问题分解、ADMM迭代求解流程、收敛性验证及结果分析,具有较强的理论深度与工程实践价值,适用于能源互联网、微电网群、园区综合能源系统等复杂场景的能量管理与协调调度。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、高校科研人员,以及从事综合能源系统规划、微电网优化、分布式能源管理等方向的工程技术人员。; 使用场景及目标:①应用于多主体参与的综合能源系统能量管理与协同优化调度;②帮助读者深入理解ADMM算法的分解-协调机制及其在分布式优化的具体实现,支撑高水平学术论文复现、科研课题攻关或实际工程项目开发;③推动智能电网与能源互联网心化、隐私保护型优化调度技术的发展与落地; 阅读建议:建议读者结合文提供的Matlab代码进行动手实践,逐行调试并可视化关键变量的迭代过程,深入掌握ADMM算法的参数设置、收敛判据及数值稳定性处理技巧,并尝试将其拓展至电动汽车集群调度、多微电网互动、可再生能源消纳等其他分布式优化应用场景进行仿真验证。
内容概要:本文围绕三相不平衡配电网的静态与动态状态估计开展仿真研究,提出并实现了基于Matlab的完整仿真代码体系,旨在精确获取配电网在复杂运行工况下的电压、电流等关键状态变量。研究深入构建了适用于三相不平衡系统的数学模型,设计并实现了高精度的状态估计算法,重点引入自适应无迹卡尔曼滤波(AUKF)等先进滤波技术以提升动态估计的鲁棒性与准确性。通过在静态与动态两种典型场景下的仿真实验,系统性地验证了所提方法在应对量测噪声、数据缺失等实际问题时的有效性与优越性。该研究为未公开发表的创新性工作,兼具重要的理论前瞻性和工程应用潜力。; 适合人群:具备电力系统分析基础理论知识和Matlab编程能力的高校研究生、科研院所的研究人员,以及从事智能配电网监控、调度自动化等相关领域的工程师。; 使用场景及目标:①作为教学与科研工具,深化对配电网状态估计基本原理、建模方法及先进算法实现的理解;②为开发新一代配电网高级应用软件(如能量管理系统EMS)提供可靠的算法原型和技术验证平台;③支撑高水平学术论文的撰写、科研项目的申报与关键技术攻关。; 阅读建议:建议读者结合提供的Matlab代码进行同步学习与调试,重点关注三相不平衡建模、状态空间方程构建、AUKF算法实现流程及仿真结果的对比分析部分,以深刻理解算法细节与性能优势。

62,271

社区成员

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

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

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

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