Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何用另一个值替换=符号后的子字符串?_C#_Regex - Fatal编程技术网

C# 如何用另一个值替换=符号后的子字符串?

C# 如何用另一个值替换=符号后的子字符串?,c#,regex,C#,Regex,我有一个文本文件如下 设置aaadb=测试 设置aaadbo=dummyvalue1 设置aaacdo=dummyvalue2 等等 我有密钥和值对的列表 如下 关键值 aaadb-MyTesting aaadbo MyTesting1 aaacdo MyTesting3 等等 现在我想输出如下 设置aaadb=MyTesting 设置aaadbo=MyTesting1 设置aaacdo=MyTesting3 有人能帮助我如何使用正则表达式实现这一点吗?工作示例: static void Mai

我有一个文本文件如下

设置aaadb=测试

设置aaadbo=dummyvalue1

设置aaacdo=dummyvalue2

等等

我有密钥和值对的列表 如下

关键值

aaadb-MyTesting

aaadbo MyTesting1

aaacdo MyTesting3

等等

现在我想输出如下

设置aaadb=MyTesting

设置aaadbo=MyTesting1

设置aaacdo=MyTesting3

有人能帮助我如何使用正则表达式实现这一点吗?

工作示例:

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();
}
static void Main(字符串[]args)
{
List textFile=new List(){“set aaadb=test”、“set aaadbo=dummyvalue1”、“set aaacdo=dummyvalue2”};
Dictionary keyValues=新字典();
添加(“aaadb”、“MyTesting”);
添加(“aaadbo”、“MyTesting1”);
添加(“aaacdo”、“MyTesting3”);
列表结果=新列表();
foreach(文本文件中设置的变量)
{
var splits=set.Split('=');
splits[1]=keyValues。其中(k=>k.Key==splits[0]。Split(“”)[1])。选择(k=>k.Value)。FirstOrDefault();
Add(string.Join(“=”,splits));
}
Console.ReadLine();
}

如果你有键值对列表,比如字典

  var source = new Dictionary<string, string>() {
    {"aaadb", "MyTesting"},
    {"aaadbo", "MyTesting1"},
    {"aaacdo", "MyTesting3"},
  };
结果:

aaadb=MyTesting
aaadbo=MyTesting1
aaacdo=MyTesting3
如果要将文件解析回键/值对,可以将正则表达式放在那里:

var result=File
.ReadLines(@“c:\MyFile.txt”)
.Select(line=>Regex.Match(
行,,
@“^\s*集\s+(?[A-Za-z0-9]+)\s*=\s*(?*)”)
.Where(匹配=>match.Success)
.选择(匹配=>new KeyValuePair(
匹配。组[“键”]。值,
匹配。组[“值”]。值)
.ToArray();//让我们把对作为一个数组

不需要正则表达式,只需在
=
上拆分并替换相应的值。您所说的键值列表是什么意思?这是一本列表词典吗?请输入您尝试的代码。
aaadb=MyTesting
aaadbo=MyTesting1
aaacdo=MyTesting3
  var result = File
    .ReadLines(@"c:\MyFile.txt") 
    .Select(line => Regex.Match(
         line, 
       @"^\s*set\s+(?<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