草庐IT

REGEXP_REPLACE

全部标签

c# - C# 中 File.Replace 和 (File.Delete+File.Move) 的区别

今天我遇到了一个奇怪的问题:自一年以来,应用程序的多个版本/测试已成功使用以下代码将一个文件替换为另一个文件。File.Replace(path+".tmp",path,null);这在本地和UNC路径(网络共享)中都有效。但是今天当我使用此代码替换UNC路径上的文件时出现以下错误(本地仍然有效):Theprocesscannotaccessthefilebecauseitisbeingusedbyanotherprocess当我使用下面的代码而不是上面的代码时,它起作用了:File.Delete(path);File.Move(path+".tmp",path);所以我的问题:这两个

c# - 在繁忙的环境中可靠地保存文件 (File.Replace)

我正在开发需要定期将数据保存到磁盘的服务器软件。我需要确保覆盖旧文件,并且在意外情况下文件不会损坏(例如,仅部分覆盖)。我采用了以下模式:stringtempFileName=Path.GetTempFileName();//...writeoutthedatatotemporaryfile...MoveOrReplaceFile(tempFileName,fileName);...MoveOrReplaceFile在哪里:publicstaticvoidMoveOrReplaceFile(stringsource,stringdestination){if(source==null)

c# - String.Replace .NET Framework 的内存效率和性能

stringstr1="12345ABC...\\...ABC100000";//Hypotheticallyhugestringof100000+UnicodeCharsstr1=str1.Replace("1",string.Empty);str1=str1.Replace("22",string.Empty);str1=str1.Replace("656",string.Empty);str1=str1.Replace("77ABC",string.Empty);//...thisreplaceanti-patternmighthappenwithupto50consecutiv

c# - 正则表达式 (C#) : Replace\n with\r\n

如何使用C#中的正则表达式将\n的单独实例替换为\r\n(LF单独与CRLF)?我知道使用计划String.Replace来做到这一点,例如:myStr.Replace("\n","\r\n");myStr.Replace("\r\r\n","\r\n");但是,这是不雅的,并且会破坏文本中已经存在的任何“\r+\r\n”(尽管它们不太可能存在)。 最佳答案 如果你使用它可能会更快。(?它主要是寻找前面没有\r的任何\n。这很可能会更快,因为在另一种情况下,几乎每个字母都匹配[^\r],所以它会捕获它,然后在它之后寻找\n。在我给出

c# - 如何忽略 String.replace 中的大小写

stringsentence="Weknowitcontains'camel'word.";//Camelcanbeindifferentcases:strings1="CAMEL";strings2="CaMEL";strings3="CAMeL";//...strings4="Camel";//...strings5="camel";尽管string.Replace不支持左侧字符串的ignoreCase,但如何将句子中的“camel”替换为“horse”? 最佳答案 使用正则表达式:varregex=newRegex("came

c# - 执行 Regex.Replace() 时如何使用命名组

在执行Regex.Replace时如何使用命名捕获?我已经走到这一步了,它做了我想要的,但不是我想要的:[TestCase("FirstSecond","SecondFirst")]publicvoidNumberedReplaceTest(stringinput,stringexpected){Regexregex=newRegex("(?First)(?Second)");Assert.IsTrue(regex.IsMatch(input));stringreplace=regex.Replace(input,"$2$1");Assert.AreEqual(expected,rep

c# - 让 String.Replace 只命中 "whole words"的方式

我需要一种方法:"test,andtestbutnottesting.Butyestotest".Replace("test","text")返回这个:"text,andtextbutnottesting.Butyestotext"基本上我想替换整个单词,但不是部分匹配项。注意:我将不得不为此使用VB(SSRS2008代码),但C#是我的常用语言,因此两种语言的响应都很好。 最佳答案 正则表达式是最简单的方法:stringinput="test,andtestbutnottesting.Butyestotest";stringpat

c# - C# 中的 String.Replace(char, char) 方法

如何用空格替换\n?如果我这样做,我会得到一个空文字错误:stringtemp=mystring.Replace('\n',''); 最佳答案 String.Replace('\n','')不起作用,因为''不是有效的字rune字。如果您使用String.Replace(string,string)覆盖,它应该可以工作。stringtemp=mystring.Replace("\n",""); 关于c#-C#中的String.Replace(char,char)方法,我们在StackOv

c# - String.Replace() 与 StringBuilder.Replace()

我有一个字符串,我需要用字典中的值替换其中的标记。它必须尽可能高效。使用string.replace进行循环只会消耗内存(记住,字符串是不可变的)。StringBuilder.Replace()会更好吗,因为它是为处理字符串操作而设计的?我希望避免RegEx的开销,但如果那样会更有效,那就这样吧。注意:我不关心代码复杂度,只关心它运行的速度和消耗的内存。平均统计数据:长度为255-1024个字符,字典中有15-30个键。 最佳答案 使用以下代码使用RedGateProfilerclassProgram{staticstringdat

c# - 是否有不区分大小写的 string.Replace 替代方法?

我需要搜索一个字符串并将所有出现的%FirstName%和%PolicyAmount%替换为从数据库中提取的值。问题是FirstName的大小写不同。这使我无法使用String.Replace()方法。我看过有关该主题的网页,建议Regex.Replace(strInput,strToken,strReplaceWith,RegexOptions.IgnoreCase);但是由于某些原因,当我尝试将%PolicyAmount%替换为$0时,替换从未发生。我认为这与美元符号是正则表达式中的保留字符有关。有没有我可以使用的另一种方法,它不涉及清理输入以处理正则表达式特殊字符?