このファイル名の数字部分を抽出しようとしています。「名前、lastname_123456_state_city.pdf」
私はここまで来ました..
idstring = file.Substring(file.IndexOf("_") + 1,
(file.LastIndexOf("_") - file.IndexOf("_") - 1));
これは、正規表現が優れている可能性があるケースの 1 つです。
_(\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;
var firstUnderscore = file.IndexOf("_");
var nextUnderscore = file.IndexOf("_", firstUnderscore + 1);
var idstring = file.Substring(firstUnderscore + 1, nextUnderscore - firstUnderscore - 1);
正規表現を使用しないのはなぜですか? のテストで@"_([0-9]*)_"
うまくいくはずです。
あなたは使用することができますSystem.Text.RegularExpressions.Regex
var regex = new Regex(@"^.*_(?<number>\d+)_.*\.pdf");
var idstring=regex.Match(file).Groups["number"].Value;