我想使用正则表达式来获得没有扩展名的文件名。我无法让正则表达式返回一个值。我有这样的:C#正则表达式获取没有扩展名的文件名?
string path = @"C:\PERSONAL\TEST\TESTFILE.PDF";
var name = Regex.Match(path, @"(.+?)(\.[^\.]+$|$)").Value;
在这种情况下,name
总是回来为C:\PERSONAL\TEST\TESTFILE.PDF
。我做错了什么,我认为我的搜索模式是正确的?
(我知道我可以使用Path.GetFileNameWithoutExtension(path);
但我特别想尝试使用正则表达式)
为何要使用这个时候一个非常好的框架方法存在一个正则表达式?你可以使用一个正则表达式,但是你手上还会有一个额外的问题。 – Amy
但为什么?寻找[麻烦](https://blog.codinghorror.com/regular-expressions-now-you-have-two-problems)? – dlatikay
如果这只是为了学习正则表达式,那很好,但是对此使用正则表达式绝对没有理由。事实上,我认为在解决大多数问题时,正则表达式应该是您的最后手段。 – juharr