当我尝试使用 Regex.Replace 它会抛出 System.ArgumentException
When i try to use Regex.Replace it throws out System.ArgumentException
我有这个安宁的代码:
string modz = Regex.Replace(mod, Directory.GetCurrentDirectory(), "");
mod
字符串基本上是这样的:
C:\Users\USER\Documents\SharpDevelop Projects\Project\Project\bin\Debug\BALZOO.jar
我希望它是 BALOO.jar
或只是 BALZOO
。
就像@GSerg 指出的那样,典型的目录路径不像是有效的正则表达式模式,即使是,也不太可能像您期望的那样进行替换。
您应该改用普通的 string.Replace
。
但是,有比字符串替换更好的方法。取决于你喜欢做什么:
只获取文件名:
Path.GetFileName(mod) // BALOO.jar
Path.GetFileNameWithoutExtension(mod) // BALOO
获取当前目录到mod
的相对路径:
MakeRelative(mod, Directory.GetCurrentDirectory())
// ...
public static string MakeRelative(string path, string relativeTo)
{
return new Uri(relativeTo).MakeRelativeUri(new Uri(path)).OriginalString;
}
我有这个安宁的代码:
string modz = Regex.Replace(mod, Directory.GetCurrentDirectory(), "");
mod
字符串基本上是这样的:
C:\Users\USER\Documents\SharpDevelop Projects\Project\Project\bin\Debug\BALZOO.jar
我希望它是 BALOO.jar
或只是 BALZOO
。
就像@GSerg 指出的那样,典型的目录路径不像是有效的正则表达式模式,即使是,也不太可能像您期望的那样进行替换。
您应该改用普通的 string.Replace
。
但是,有比字符串替换更好的方法。取决于你喜欢做什么:
只获取文件名:
Path.GetFileName(mod) // BALOO.jar Path.GetFileNameWithoutExtension(mod) // BALOO
获取当前目录到
mod
的相对路径:MakeRelative(mod, Directory.GetCurrentDirectory()) // ... public static string MakeRelative(string path, string relativeTo) { return new Uri(relativeTo).MakeRelativeUri(new Uri(path)).OriginalString; }