4

このファイル名の数字部分を抽出しようとしています。「名前、lastname_123456_state_city.pdf」

私はここまで来ました..

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

4 に答える 4

6

これは、正規表現が優れている可能性があるケースの 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;
于 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 に答える