如何用字符串从分机中删除号码



我想在c#中使用字符串从扩展中删除数字。

例如:"Url1234.pdf"我希望最后一个答案看起来像"Url.pdf"

谢谢你的贡献

  var fileName = "";
            if (file != null && file.ContentLength > 0)
            {
                fileName = System.IO.Path.GetFileNameWithoutExtension(file.FileName); //Path.GetFileName(file.FileName);
                var extension = System.IO.Path.GetExtension(file.FileName);
                DBConnect.OpenDB();
                DBConnect.DbSelect("select MAX(ID) as ID from tblFileUpload");
                if(DBConnect.dr.Read())
                {
                    fileName += DBConnect.dr["ID"].ToString();
                }
                DBConnect.CloseDB();
                var path = Path.Combine(Server.MapPath("~/File/"), fileName+extension);
                new FileUploadLayer().save("aa", fileName, file.ContentLength);
                file.SaveAs(path);
                UploadFile("aa");
            }

保存一个扩展名为(.pdf)的文件。该文件名也有数字。所以,当我调用它回来,我需要删除这些数字,只需要字符串部分(Url.pdf)。

您可以使用所示的正则表达式或简单的LINQ查询,我也推荐System.IO.Path:

string originalPath = "Url1234.pdf";
string dir = Path.GetDirectoryName(originalPath);              // in this case ""
string extension = Path.GetExtension(originalPath);            // .pdf
string fn = Path.GetFileNameWithoutExtension(originalPath);    // Url1234
string newFn = String.Concat(fn.Where(c => !Char.IsDigit(c))); // Url
string newPath = Path.Combine(dir, newFn + extension);         // Url.pdf

您可以使用Regex将数字替换为空字符串:

var result1 = Regex.Replace("Url1234.pdf", @"[d-]", string.Empty);

添加using System.Text.RegularExpressions;

最新更新