Asp.net 检查字符串的前16个字符是否为数字

Asp.net 检查字符串的前16个字符是否为数字,asp.net,Asp.net,我正在数据库中存储一些文件,其文件名类似于1839341255115211butterflies.jpg。我需要将此文件名显示为butterflies.jpg。我需要删除前16位数字,然后显示文件名。添加到该文件中,我也有一些文件名在文件名之前没有16位数字的添加。现在我的问题是,我该怎么做确定此字符串在文件名之前是否有16位数字,根据它删除第一个16位数字并仅显示文件名。我知道如何删除前16位数字并检索文件名,但需要关于如何识别16位数字的字符串的帮助 非常感谢您的任何建议。正则表达式看起来非

我正在数据库中存储一些文件,其文件名类似于1839341255115211butterflies.jpg。我需要将此文件名显示为butterflies.jpg。我需要删除前16位数字,然后显示文件名。添加到该文件中,我也有一些文件名在文件名之前没有16位数字的添加。现在我的问题是,我该怎么做确定此字符串在文件名之前是否有16位数字,根据它删除第一个16位数字并仅显示文件名。我知道如何删除前16位数字并检索文件名,但需要关于如何识别16位数字的字符串的帮助


非常感谢您的任何建议。

正则表达式看起来非常适合这里:

^[0-9]{16}
以上内容将匹配以16位0到9开头的字符串

用法:

if(Regex.Match(fileName, @"^[0-9]{16}").Success)
{
  fileName = fileName.Remove(0, 16);
}

正则表达式在这里看起来很合适:

^[0-9]{16}
以上内容将匹配以16位0到9开头的字符串

用法:

if(Regex.Match(fileName, @"^[0-9]{16}").Success)
{
  fileName = fileName.Remove(0, 16);
}

string.Remove将非常有效:

    var str = "1839341255115211butterflies.jpg";
    str = str.Remove(0, 16);
    Console.WriteLine(str);

string.Remove将非常有效:

    var str = "1839341255115211butterflies.jpg";
    str = str.Remove(0, 16);
    Console.WriteLine(str);
林克:

删除开头的所有数字,直到16位:

string file = "1839341255115211butterflies.jpg";
string extension = Path.GetExtension(file);
string fileName = Path.GetFileNameWithoutExtension(file);
fileName = new string(fileName.Where((c, i) => i >= 17 || !Char.IsDigit(c)).ToArray());
file = fileName + extension;
编辑:如果您只想知道前16个字符是否为数字,则更容易阅读:

bool startsWith16Digits = file.Take(16).All(Char.IsDigit); 
林克:

删除开头的所有数字,直到16位:

string file = "1839341255115211butterflies.jpg";
string extension = Path.GetExtension(file);
string fileName = Path.GetFileNameWithoutExtension(file);
fileName = new string(fileName.Where((c, i) => i >= 17 || !Char.IsDigit(c)).ToArray());
file = fileName + extension;
编辑:如果您只想知道前16个字符是否为数字,则更容易阅读:

bool startsWith16Digits = file.Take(16).All(Char.IsDigit); 

@在oracle中的newuser1555可以执行类似于从文件表中选择*的操作,其中regexp\u likefile\u name,^[0-9]{16}.*\.jpg.@newuser1555在oracle中可以执行类似于从文件表中选择*的操作,其中regexp\u likefile\u name,^[0-9]{16}.*\.jpg.OP说有些字符串不是以16位开头的。OP正在寻找一种区分它们的方法。@Oded:说得对。看起来我的代码段需要放在您的代码段中;-+1是的。虽然你可以单独用Regex来剥这只猫的皮。OP确实说过有些字符串不是以16位数字开头的。OP正在寻找一种区分它们的方法。@Oded:说得对。看起来我的代码段需要放在您的代码段中;-+1是的。虽然你可以单独用Regex给这只猫剥皮。当然,LINQ的例子并不适用于所有的事情@Oded:注意,实现正则表达式的功能更容易,而且可能更容易编辑:fileName.Take16.Allc=>Char.IsDigitc;谢谢你们。@Oded:你们的解决方案正是我想要的。非常感谢你们。嗯。当然,LINQ的例子并不适用于所有的事情@Oded:注意,实现正则表达式的功能更容易,而且可能更容易编辑:fileName.Take16.Allc=>Char.IsDigitc;谢谢你们。@Oded:你们的解决方案正是我想要的。非常感谢你们。