4

我正在尝试提取此文件名中的数字部分。“姓名,姓氏_123456_state_city.pdf”

我已经到这一步了。。

idstring = file.Substring(file.IndexOf("_") + 1, 
    (file.LastIndexOf("_") - file.IndexOf("_") - 1));
4

4 回答 4

6

这是正则表达式可能更好的情况之一:

_(\d+)_

而且,这就是你将如何使用它

    string input = "Name, lastname_123456_state_city.pdf";
    string regexPattern = @"_(\d+)_";

Match match = Regex.Match(input, regexPattern, RegexOptions.IgnoreCase);

if (match.Success)
    string yourNumber = match.Groups[1].Value;
于 2012-04-24T21:57:27.900 回答
2
var firstUnderscore = file.IndexOf("_");
var nextUnderscore = file.IndexOf("_", firstUnderscore + 1);
var idstring = file.Substring(firstUnderscore + 1, nextUnderscore - firstUnderscore - 1);
于 2012-04-24T22:00:47.010 回答
0

为什么不直接使用正则表达式?测试@"_([0-9]*)_"应该可以解决问题。

于 2012-04-24T21:59:28.707 回答
0

你可以使用一个System.Text.RegularExpressions.Regex

var regex = new Regex(@"^.*_(?<number>\d+)_.*\.pdf");
var idstring=regex.Match(file).Groups["number"].Value;
于 2012-04-24T22:01:01.077 回答