我有一个文本文件,其值类似于
VER A 150 VER A 56 版本131
VER Z 208 VER Z 209 VER Z 250
VER W 300 VER W 200 VER W 124
该系列可以更具个性。现在我想从W300,Z250,A150等每个角色获得最高价值 我在C#中使用.net Webform应用程序
答案 0 :(得分:0)
这是使用正则表达式的解决方案。我使用StringReader,但是您可以更改为StreamReader以从文件读取
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
namespace ConsoleApplication103
{
class Program
{
static void Main(string[] args)
{
string input =
"VER A 150 VER A 56 VER A 131\n" +
"VER Z 208 VER Z 209 VER Z 250\n" +
"VER W 300 VER W 200 VER W 124\n"
;
StringReader reader = new StringReader(input);
string line = "";
string pattern = @"[^\d]+\d+";
while ((line = reader.ReadLine()) != null)
{
MatchCollection matches = Regex.Matches(line, pattern);
string[][] splitData = matches.Cast<Match>()
.Select(x => x.Value.Trim()
.Split(new char[] { ' ' }).ToArray())
.ToArray();
var result = splitData
.Select(x => new { letter = x.Skip(1).First(), number = int.Parse(x.Last()) })
.OrderByDescending(x => x.number)
.FirstOrDefault();
Console.WriteLine("letter = '{0}', number = '{1}'", result.letter, result.number);
}
Console.ReadLine();
}
}
}