您正在使用 IPV4 [35.172.121.218] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
悟空收录网       [公益]保护绿色环境,构建和谐社会      

【腾讯云】 爆款2核2G3M云服务器首年 61元,叠加红包再享折上折      
[公益] 地球是我家,绿化靠大家      
2024年 清明节 006
2024年 劳动节 033
2025年 元 旦 278
2025年 春 节 306
 
您现在的位置:首页 >> ASP/ASP.net >> 内容
本类新增
本类热门
asp.net高效替换大容量字符实现代码
内容摘要: 一般进行替换操作都这样:代码如下:str=str.replace(字符串一,字符串二)不难发现一个问题,如果str要循环替换很多次,下一次替换时会累加上上次替换的内容,并且全遍历一次,如果字符串二很多,替换的过程就像阶梯效果,越来越大,所以速度越来越慢。要解决这个问题只能找另外的方法替换这种表达方式。如何以更高效率代替这种操作?思路如下:知识星球每次替换完后......
一般进行替换操作都这样:

代码如下:

str=str.replace(字符串一,字符串二)

不难发现一个问题,如果str要循环替换很多次,下一次替换时会累加上上次替换的内容,并且全遍历一次,如果字符串二很多,替换的过程就像阶梯效果,越来越大,所以速度越来越慢。要解决这个问题只能找另外的方法替换这种表达方式。

如何以更高效率代替这种操作?思路如下:

知识星球

每次替换完后,在下次替换时先排除这次替换的内容,累加本次替换的内容。

代码如下:

publicRegexreturnMatch(Stringstr)//匹配正则

{

Regexr;

r=newRegex(@str,RegexOptions.IgnoreCase);

returnr;

}

///<summary>

///替换

///</summary>

///<paramname="sDetail">要处理的字符</param>

///<paramname="regex">正则表达式</param>

///<paramname="replace_str">要替换的内容</param>

///<returns>处理完的字符</returns>

publicstringreplace(stringsDetail,stringregex)

{

intlast_index=0;

stringcut_str=sDetail;

stringreturn_str="";

Regexr;

Matchm;

r=returnMatch(regex);

for(m=r.Match(sDetail);m.Success;m=m.NextMatch())

{

intn=m.Groups[0].Length;//匹配长度

cut_str=cut_str.Substring(last_index,cut_str.Length-last_index);//去掉上次后的结果

intk=cut_str.IndexOf(m.Groups[0].ToString());//当前位置

stringthis_v=cut_str.Substring(k,n);//当前匹配的值

stringstr3=cut_str.Substring(0,k+n);//当前得到的值

//return_str+=str3.Replace(m.Groups[0].ToString(),Return_Item_Content(m.Groups[0].ToString()));

return_str+=evn(str3,m);

last_index=k+n;//记录当前匹配的位置

}

if(return_str!="")

sDetail=return_str+cut_str.Substring(last_index,cut_str.Length-last_index);

returnsDetail;

}

}

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:ASP正则函数替换分页后的参数

 

下一篇:asp中实现随机分组程序的代码

发布日期:2023/5/10
手机扫二维码直达本页
发布时间:13:19:48
点  击:8
录  入:壹家怡园
相关文章
Baidu
YiJiaCMS 7.3.8 build231228(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
运行时间载入中.....