String.Replace方法忽略具有特殊字符的大小写.

jkh*_*jkh 1 c# regex string replace

我有一个包含服务器文件路径($\MyPath\Quotas\ExactPath\MyFile.txt)和本地文件系统路径(C:\ MyLocalPath\Quotas\ExactPath)的字符串.我想用本地系统路径替换服务器文件路径.

我目前有一个确切的替代品:

String fPath = @"$\MyPath\Quotas\ExactPath\MyFile.txt";
String sPath = @"$\MyPath\Quotas\ExactPath\";
String lPath = @"C:\MyLocalPath\Quotas\ExactPath\";

String newPath = fPath.Replace(sPath, lPath);
Run Code Online (Sandbox Code Playgroud)

但是我希望这是一个不区分大小写的替换,因此它也会用lPath替换$\MyPath\quotas\Exactpath \.

我遇到了使用正则表达式,如下所示:

var regex = new Regex( sPath, RegexOptions.IgnoreCase );
var newFPath = regex.Replace( fPath, lPath );
Run Code Online (Sandbox Code Playgroud)

但是如何处理特殊字符($,\,/,:)以便它不被解释为正则表达式特殊字符?

And*_*rei 5

您可以使用Regex.Escape:

var regex = new Regex(Regex.Escape(sPath), RegexOptions.IgnoreCase);
var newFPath = regex.Replace(fPath, lPath);
Run Code Online (Sandbox Code Playgroud)