为什么使用正则表达式,当你可以在c#中做到这一点?
我为您创建了一个功能:
public static class FileNameHelper
{
public static string GetFileNameFromPath(string path, string extWithoutdot = "cs")
{
var startIndex = path.LastIndexOf('/') + 1;
var stringg = path.Substring(startIndex);
var remIndex = stringg.LastIndexOf("." + extWithoutdot) + extWithoutdot.Length+1;
return stringg.Remove(remIndex);
}
}
如何使用?
string filename=FileNameHelper.GetFileNameFromPath("//source/project/file.initial.config.cs#232","cs");
记住使用扩展不.
看到这个拥有超过正则表达式很多优势。它们是:
- 它不是正则表达式!
- 其快速高效。
- 它的可读性和纯C#
注:不要使用在C#中的正则表达式琐碎的事情。这绝对是对性能的一个打击。首先想想在c#中实现它的方法。正则表达式应该是最后的手段。当然,如果表现不重要,请使用任何!
顺便说一句,如果它有帮助,将其标记为答案。 我知道它会帮助:)
如果文件名包含'#'会怎么样? – jamesdlin
那些是不好的juju,但我已经编辑了我的答案来解释它们。使它稍微复杂一些,但并不过分。 – Mark