我有以下文件名:
SCO_InsBooking_1.pdf
SCO_InsBooking_10.pdf
SCO_InsBooking_100.pdf
SCO_InsBooking_1000.pdf
我使用FileInfo读取文件名并希望将其拆分,以便我只获得1,10,100或1000数字,我将如何实现这一目标?
答案 0 :(得分:5)
使用正则表达式:
string number = Regex.Match("SCO_InsBooking_1000.pdf", @"\d+").Value;
假设文件名中没有其他编号。
答案 1 :(得分:4)
filename = filename.Substring(filename.lastIndexOf("_")+1);
filename = filename.Substring(0, filename.indexOf("."));
可选地
filename = Regex.Replace(filename, "_(\d+).pdf$", "$1");
答案 2 :(得分:1)
string number = "SCO_InsBooking_1.pdf".split('_')[2].split('.')[0];
当然,使用某些边界检查以避免索引异常会更好。
答案 3 :(得分:0)
您可以使用正则表达式执行此操作:
Regex.Match(filename, @".*_(\d+).pdf").Groups[1].Value
答案 4 :(得分:0)
您可以使用string.replace()
using System.Collections.Generic;
namespace strings1
{
class Program
{
static void Main(string[] args)
{
List<string> names = new List<string> {
"SCO_InsBooking_1.pdf",
"SCO_InsBooking_10.pdf",
"SCO_InsBooking_100.pdf",
"SCO_InsBooking_1000.pdf" };
List<string> numbers = new List<string>();
foreach (string item in names)
{
numbers.Add(item.Replace("SCO_InsBooking_", string.Empty).Replace(".pdf",string.Empty));
}
}
}
}