asp.net高效替换大容量字符实现代码

一般进行替换操作都这样:


代码如下:

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

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

如何以更高效率代替这种操作? 思路如下:
每次替换完后,在下次替换时先排除这次替换的内容,累加本次替换的内容。


代码如下:

public Regex returnMatch(String str)//匹配正则
{
Regex r;
r = new Regex(@str,RegexOptions.IgnoreCase);
return r;
}
/// <summary>
/// 替换
/// </summary>
/// <param name="sDetail">要处理的字符</param>
/// <param name="regex">正则表达式</param>
/// <param name="replace_str">要替换的内容</param>
/// <returns>处理完的字符</returns>
public string replace(string sDetail,string regex)
{
int last_index=0;
string cut_str=sDetail;
string return_str="";
Regex r;
Match m;
r = returnMatch(regex);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
int n=m.Groups[0].Length;//匹配长度
cut_str=cut_str.Substring(last_index,cut_str.Length-last_index);//去掉上次后的结果
int k=cut_str.IndexOf(m.Groups[0].ToString());//当前位置
string this_v=cut_str.Substring(k,n);//当前匹配的值
string str3=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);
return sDetail;
}
}

(0)

相关推荐

  • ASP正则函数替换分页后的参数

    Function DRexPage(Str)     Dim RegEx     If IsNull(Str) Or Str="" Then Exit Function    Set RegEx=New RegExp         RegEx.IgnoreCase=True        RegEx.pattern="(\&)?page=(\d)+"        DRexPage=regEx.replace(Str,"")  '(St

  • asp.net保存远程图片的代码

    注意:并没有实现CSS中的图片采集,且图片的正则还有待完善. 复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using

  • asp常用的正则表达式实现字符串的替换

    去除html标签正则<\/*[^<>]*>Function LoseHtml(ContentStr)     Dim ClsTempLoseStr,RegEx         ClsTempLoseStr = Cstr(ContentStr)     Set RegEx = New RegExp         RegEx.Pattern = "<\/*[^<>]*>"         RegEx.IgnoreCase = True   

  • asp 图片正则 替换,替换前检查图片是不是本地地址的方法

    直接用正则替换,但没有判断功能 Function FormatImg(content) dim re Set re=new RegExp re.IgnoreCase =true re.Global=True re.Pattern="(script)" Content=re.Replace(Content,"script") re.Pattern="<img.[^>]*src(=| )(.[^>]*)>" Content=r

  • asp.net(c#)判断远程图片是否存在

    复制代码 代码如下: private int GetUrlError(string curl) { int num = 200; if(this.method==1) { HttpWebRequest request=(HttpWebRequest) WebRequest.Create(new Uri(curl)); ServicePointManager.Expect100Continue=false; try { ((HttpWebResponse)request.GetResponse()

  • ASP替换、保存远程图片实现代码

    ASP通过函数来实现替换.保存远程图片,完成自动采集图片.提取图片的功能,函数中自动判断重复图片,智能分析链接路径,并转成成相对的图片地址保存在你指定的网站目录中,我们可将此函数用在后台的编辑器中,当你复制了含有图片的内容后,本代码会自动帮你上传图片.同时本代码也是采集程序中的重要处理函数,函数代码如下: Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl) If ConStr="$Fa

  • ASP保存远程图片到本地 同时取得第一张图片并创建缩略图的代码

    采集中 或者 在线添加文章中 都可以用到此功能 俺自己在baidu上搜索的保存远程图片到本地的代码 感觉比较难用点 而且没有现成的比较全的代码 俺也看不懂 俺从 SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码  复制代码 代码如下: <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderP

  • asp+Access通用的自动替换数据库中的字符串

    当初只是为了玩玩写的,没想到写了之后不断有人询问,所以改写了一下代码,完善了一下,支持了正则替换,避开了会导致出错的二进制(ole对象),并且做了一个EXE的程序.感谢虚拟帮忙. 附asp代码: 复制代码 代码如下: <%     '####################################     '批量替换数据库内容2008-3-17     '替换是不可逆的,所以操作前做好能备份     '####################################     Di

  • asp.net高效替换大容量字符实现代码

    一般进行替换操作都这样: 复制代码 代码如下: str=str.replace(字符串一,字符串二) 不难发现一个问题,如果str要循环替换很多次,下一次替换时会累加上上次替换的内容,并且全遍历一次,如果字符串二很多,替换的过程就像阶梯效果,越来越大,所以速度越来越慢.要解决这个问题只能找另外的方法替换这种表达方式. 如何以更高效率代替这种操作? 思路如下: 每次替换完后,在下次替换时先排除这次替换的内容,累加本次替换的内容. 复制代码 代码如下: public Regex returnMatc

  • C++ string替换指定字符实例代码

    前言 C++的string提供了replace方法来实现字符串的替换,但是有时候我们想要实现类似JAVA中的替换功能--将string中的某个字符a全部替换成新的字符b,这个功能在提供的replace方法中并没有实现. 不过只要再深入了解一下STL,就可以在变易算法中找到解决方案--使用#include<algorithm>中的replace算法即可. 测试代码如下: #include<algorithm> #include<string> #include<io

  • asp下实现替换远程文件为本地文件并保存远程文件的代码

    1.将下面的文本文件下载,并将.TXT改为remote.asp,里面有具体设置方法 复制代码 代码如下: <%  '添加资源时是否保存远程图片 Const sSaveFileSelect=True '远程图片保存目录,结尾请不要加"/" Const sSaveFilePath="/images/News" '远程图片保存类型 Const sFileExt="jpg|gif|bmp|png" '////////////////////////

  • 用js替换除数字与逗号以外的所有字符的代码

    用js替换除数字与逗号以外的所有字符 复制代码 代码如下: <script language="javascript">  var str="asdfk,asdf345345,345345"; //替换除数字与逗号以外的所有字符.str=str.replace(/[^0-9,]*/g,""); //去掉第一个逗号if (str.substr(0,1)==',') str=str.substr(1);//去掉第二个逗号var reg=/

  • js替换字符串中所有指定的字符(实现代码)

    第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志). replace() The replace() method returns the string that results when you replace text matching its first argumen

  • JS利用正则配合replace替换指定字符

    定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp,replacement) 参数 描述 regexp 必需.规定了要替换的模式的 RegExp 对象.请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象. replacement 必需.一个字符串值.规定了替换文本或生成替换文本的函数. 返回值 一个新的字符串,是用 repl

  • asp.net下检测SQL注入式攻击代码

    两个类: (页面数据校验类)PageValidate.cs 基本通用. 代码如下: 复制代码 代码如下: using System; using System.Text; using System.Web; using System.Web.UI.WebControls; using System.Text.RegularExpressions; namespace Common {     /// <summary>     /// 页面数据校验类     /// </summary&

  • 网页前台通过js非法字符过滤代码(骂人的话等等)

    代码一:keypress事件时使用 复制代码 代码如下: /****************************************************/ //功能:过滤非法字符 //说明:keypress事件时使用 //作者:XXXXXXX //日期:2010年5月7日 /****************************************************/ function surnam_keypress(event) { //非法字符集 var codes

  • JavaScript 替换Html标签实现代码

    复制代码 代码如下: str = str.<br /> replace( /&(?!#?\w+;)/g , '&').<br /> replace( /undefinedundefined([^undefinedundefined]*)"/g , '"$1"' ).<br /> replace( /</g , '<' ).<br /> replace( />/g , '>' ).<b

  • 使用js的replace()方法查找字符示例代码

    通常用于文本输入框的一种功能是替换指定的字符.JavaScript具有一个非常有用的方法replace(),可以用它利用备选字符集途欢指定的字符. replace()方法允许指定希望替换的字符或字符集,方式是利用字符串或者正则表达式:这是该方法的第一个实参.第二个实参是谢昂替换为的字符.第二个实参通常只是一个替换字符串(替换字符集),但他可以是用于确定替换字符串应当是什么的函数--如果是函数,则返回值应当用做俄日替换字符串.隐藏replace()方法的语法可以是如下任意一种: 复制代码 代码如下

随机推荐