Tag: 替换

替换二进制文件中的字节序列

将二进制文件中的字节序列替换为相同长度的其他字节的最佳方法是什么? 二进制文件非常大,大约50 MB,不应该一次加载到内存中。 更新:我不知道需要替换的字节位置,我需要先找到它们。

在巨大的字符串中替换多个字符串的最快方法

我正在寻找替换大(~1mb)字符串的多个(~500)子串的最快方法。 无论我尝试过什么,似乎String.Replace是最快的方式。 我只关心最快的方式。 不是代码可读性,可维护性等。我不在乎我是否需要使用不安全的代码或预处理原始字符串。 编辑:评论后我添加了一些更多细节: 每个替换迭代将使用其他字符串替换字符串上的ABC(每个替换迭代不同)。 要替换的字符串总是相同的 – ABC将永远是ABC。 从不ABD。 因此,如果有400.000个替换迭代。 每次使用相同的字符串 – ABC – 将替换为其他(不同的)字符串。 我可以控制ABC是什么。 只要它不影响结果,我可以使它超短或超长。 显然,ABC不能打招呼,因为hello将在大多数输入字符串中作为单词存在。 输入示例: ABCDABCABCDABCABCDABCABCDABCD 示例替换为字符串: BC 示例替换为字符串: AA, BB, CC, DD, EE (5 iterations) 示例输出: AAADAAAAAADAAAAAADAAAAAADAAAD ABBDABBABBDABBABBDABBABBDABBD ACCDACCACCDACCACCDACCACCDACCD ADDDADDADDDADDADDDADDADDDADDD AEEDAEEAEEDAEEAEEDAEEAEEDAEED 平均情况:输入字符串为100-200kb,替换迭代次数为40.000次。 最坏的情况:输入字符串是1-2mb,400,000次替换迭代。 我可以做任何事。 并行做,做不安全等等。无论我怎么做。 重要的是它需要尽可能快。 谢谢

如何一次性执行多个字符串替换?

我正在用C#编写一个应用程序,允许用户根据文件名执行数据库查询。 我正在使用Regex.Replace(string, MatchEvaluator)重载来执行替换,因为我希望用户能够拥有替换字符串,如SELECT * FROM table WHERE record_id = trim($1)即使我们正在使用的数据库不支持trim()等函数。 我不想要的是进行一系列替换,如果$ 1的值包含“$ 2”,则两个替换都会发生。 如何一次性执行多个字符串替换? 我知道PHP的str_replace支持数组作为参数; C#有类似的function吗?

使用string.Replace匹配整个单词

我正在使用NET 2.0和WinForms。 目前,我需要一个代码来替换给定文本中的另一个字符串,但在文本中它应该只查找整个单词。 我的意思是: string name = @”COUNTER = $40 CLOCK_COUNTER = $60″; name = name.Replace(“COUNTER”, “COUNT”); 它应该只用COUNT替换COUNTER的第一个实例,因为这是整个单词。 但是,似乎string.Replace并没有考虑整个词。 请不要推荐正则表达式。 我已经尝试过了,这对我的需求来说太慢了。 我需要一些非常快速和有效的东西。 我怎么能做到这一点?

从单词列表中替换字符串中的多个单词

我有一个单词列表: string[] BAD_WORDS = { “xxx”, “o2o” } // My list is actually a lot bigger about 100 words 我有一些文本(通常很短,最多250个单词),我需要删除其中的所有BAD_WORDS 。 我试过这个: foreach (var word in BAD_WORDS) { string w = string.Format(” {0} “, word); if (input.Contains(w)) { while (input.Contains(w)) { input = input.Replace(w, ” “); } } } 但是,如果文本以坏词开头或结尾,则不会删除。 我用空格做了,所以它不会匹配部分单词,例如“oxxx”不应该删除,因为它与BAD WORDS不完全匹配。 有人可以就此提出建议吗?

如何互相替换两个或多个字符串?

我需要使用C#替换字符串的某些部分。 我只能找到一个类似的问题,关于如何在这里实现,但它是PHP。 我的情况涉及一个Dictionary [string,string],它包含要替换的对,如: 狗猫 猫,老鼠, 老鼠,猛禽 我有一个值为的字符串: “My dog ate a cat which once ate a mouse got eaten by a raptor” 我需要一个函数来得到这个: “My cat ate a mouse which once ate a raptor got eaten by a raptor” 如果我枚举字典并按顺序调用string.Replace,我得到: “My raptor ate a raptor which once ate a raptor got eaten by a raptor” […]

简单的正则表达式替换以保持原始字符串

我有这个: Title = Regex.Replace(Title, s, “” + s + “”, RegexOptions.IgnoreCase); s是像facebook这样的词。 如果标题是: How to make a Facebook game 我想换成: How to make a Facebook game 即使搜索词是’facebook’(注意大写)。 基本上,我如何保留单词的原始大小写? 另一个例子,搜索词FACEBOOK ,字符串Hello FaCeBoOk转为Hello FaCeBoOk

如何使用Regex.Replace一次替换两个字符串?

我有以下方法从文件名替换“磅”符号,但我也希望能够同时替换“单撇号”。 我该怎么做? 这是filename = Provider license_A’R_Ab#acus Settlements_1-11-09.xls的值 static string removeBadCharPound(string filename) { // Replace invalid characters with “_” char. //I want something like this but is NOT working //return Regex.Replace(filename, “# ‘ “, “_”); return Regex.Replace(filename, “#”, “_”); }

替换文本文件中特定行的单词

我正在开发一个小测试程序来试验文本文件并在其中存储一些数据,当我尝试替换特定行中的值时,我遇到了一个问题。 这就是我的文本文件格式化的方式: user1, 1500, 1 user2, 1700, 17 .. 等等。 这是我目前用来逐行读取文件的代码: string line; Streamreader sr = new Streamreader(path); while ((line = sr.ReadLine()) != null) { string[] infos = line.Split(‘,’); if (infos[0] == username) //the username is received as a parameter (not shown) //This is where I’d like to change the value } 基本上,我的目标是仅在用户名匹配时更新点数(文本行中的第二个值 – 信息[1])。 […]

C#替换为回调函数,如AS3中所示

在AS3中,您在具有此签名的字符串上有一个函数: function replace(pattern:*, repl:Object):String repl:Object也可以指定一个函数。 如果指定了函数,则会插入函数返回的字符串以代替匹配的内容。 另外,是否可以获取我想要替换的原始字符串? (在AS3中,您可以获取原始字符串 var input:String = arguments[2]; //in the callback function ) 我没有在Match类中看到包含原始字符串的属性…