「1000/Refuse5.jpg」や「50/Refuse5.jpeg」のような文字列があります。文字列の最初のセクション (この例では 1000 または 50) は変数であることに注意してください。この文字列から C# メソッドで「5」という数字を取得したいと考えています。誰かが私を助けることができますか?
4 に答える
3
正規表現を使用できます
string input = "1000/Refuse5.jpg";
var num = Regex.Matches(input, @"\d+").Cast<Match>().Last().Value;
于 2013-09-11T17:06:42.160 に答える
1
より制約のある正規表現。
var fileName = "1000/Refuse5.jpg";
var match = Regex.Match(fileName, @"(?<=\D+)(\d+)(?=\.)");
if(match.Success)
{
var value = int.Parse(match.Value);
}
于 2013-09-11T17:09:02.597 に答える
1
よりクリーンな正規表現:
Console.WriteLine (Regex.Match("123ABC5", @"\d", RegexOptions.RightToLeft).Value); // 5
最後の数字が複数の数字になる場合は、\d+
代わりに使用することに注意してください。
于 2013-09-11T17:23:03.893 に答える
0
正規表現を使用して文字列の関連部分を抽出し、それを整数に変換できます。入力セットを調べて、使用する正規表現がニーズに合っていることを確認する必要があります。
string input = "1234/Refuse123.jpg";
// Look for any non / characters until you hit a /
// then match any characters other than digits as many
// as possible. After that, match digits as many as possible
// and capture them in a group (hence the paranthesis). And
// finally match everything else at the end of the string
Regex regex = new Regex("[^/]*/[^\\d]*([\\d]*).*");
var match = regex.Match(input);
// Group 0 will be the input string
// Group 1 will be the captured numbers
Console.WriteLine(match.Groups[1]);
于 2013-09-11T17:11:07.057 に答える