我的文本文件如下
设置AAADB = test
设置aaadbo = dummyvalue1
设置aaacdo = dummyvalue2
等等...
我有密钥和价值对的列表如下
钥匙值
aaadb mytesting
aaadbo mytesting1
aaacdo mytesting3
等等...
现在我想像以下
那样输出设置aaadb = mytesting
设置aaadbo = mytesting1
设置aaacdo = mytesting3
有人可以帮助我如何使用正则表达式?
如果您有键值对列表,则为字典
var source = new Dictionary<string, string>() {
{"aaadb", "MyTesting"},
{"aaadbo", "MyTesting1"},
{"aaacdo", "MyTesting3"},
};
您可以在 linq 的帮助下轻松地以所需的格式输出(这里没有正则表达式(:
string report = String.Join(Environment.NewLine, source
.Select(pair => $"{pair.Key}={pair.Value}"));
// Or File.WriteAllText(@"C:MyFile.txt", report); // if you want to save in the file
Console.WriteLine(report);
结果:
aaadb=MyTesting
aaadbo=MyTesting1
aaacdo=MyTesting3
在您中, parse file back 键/值对您可以放置正则表达式:
var result = File
.ReadLines(@"c:MyFile.txt")
.Select(line => Regex.Match(
line,
@"^s*sets+(?<key>[A-Za-z0-9]+)s*=s*(?<value>.*)$"))
.Where(match => match.Success)
.Select(match => new KeyValuePair<string, string>(
match.Groups["key"].Value,
match.Groups["value"].Value))
.ToArray(); // Let's get pairs as an array
工作样本:
static void Main(string[] args)
{
List<string> textFile = new List<string>() { "set aaadb=test", "set aaadbo=dummyvalue1", "set aaacdo=dummyvalue2" };
Dictionary<string, string> keyValues = new Dictionary<string, string>();
keyValues.Add("aaadb", "MyTesting");
keyValues.Add("aaadbo", "MyTesting1");
keyValues.Add("aaacdo", "MyTesting3");
List<string> result = new List<string>();
foreach (var set in textFile)
{
var splits = set.Split('=');
splits[1] = keyValues.Where(k => k.Key == splits[0].Split(' ')[1]).Select(k => k.Value).FirstOrDefault();
result.Add(string.Join("=", splits));
}
Console.ReadLine();
}