C# 从文件中筛选字符串变量并对其进行更改

C# 从文件中筛选字符串变量并对其进行更改,c#,C#,我目前正在编写一个basic程序,但在选择字符串变量时遇到了问题。所有变量都以u开头,然后是一个相关的字符串。首先,您不需要读取整个文件并将其再次保存到每行的循环中,您可以执行所有替换,然后保存一次 对于替换,可以使用正则表达式替换。我不确定您希望对文本进行何种转换,但您可以执行以下操作(在本例中,我只是将文本转换为大写): string[]textLines=File.ReadAllLines(@“c:\Users\Darren\Desktop\Hello.txt”); var results

我目前正在编写一个basic程序,但在选择字符串变量时遇到了问题。所有变量都以u开头,然后是一个相关的字符串。

首先,您不需要读取整个文件并将其再次保存到每行的循环中,您可以执行所有替换,然后保存一次

对于替换,可以使用正则表达式替换。我不确定您希望对文本进行何种转换,但您可以执行以下操作(在本例中,我只是将文本转换为大写):

string[]textLines=File.ReadAllLines(@“c:\Users\Darren\Desktop\Hello.txt”);
var results=新列表();
foreach(文本行中的变量行)
{
var result=Regex.Replace(第行,@“\u(.*)\ s”,match=>
{
返回$“~{match.Groups[1].Value.ToUpper()}”;
});
结果。添加(结果);
}
writeAllines(@“c:\Users\Darren\Desktop\newHello.txt”,results.ToArray());

而不是
返回$“~{match.Groups[1].Value.ToUpper()}”可以按所需方式放置转换文本的代码
match.Groups[1]。Value
将包含
\u
后面和空格前面的文本。首先,您不需要读取整个文件并将其再次保存在遍历每行的循环中,您可以执行所有替换,然后保存一次

对于替换,可以使用正则表达式替换。我不确定您希望对文本进行何种转换,但您可以执行以下操作(在本例中,我只是将文本转换为大写):

string[]textLines=File.ReadAllLines(@“c:\Users\Darren\Desktop\Hello.txt”);
var results=新列表();
foreach(文本行中的变量行)
{
var result=Regex.Replace(第行,@“\u(.*)\ s”,match=>
{
返回$“~{match.Groups[1].Value.ToUpper()}”;
});
结果。添加(结果);
}
writeAllines(@“c:\Users\Darren\Desktop\newHello.txt”,results.ToArray());

而不是
返回$“~{match.Groups[1].Value.ToUpper()}”可以按所需方式放置转换文本的代码
match.Groups[1].Value
将包含
\u
后面和空格前面的文本

能否将每一行存储为字符串数组,然后执行
text[].split(delimiter)
,它将解析/拆分分隔符之间的每个元素,并将其存储在一个单独的数组中?您的文件结构如何?是否每一行都是这样的:
\u variableName一些相关的文本
?比下一行更相似。你能举一个输入和预期输出的例子吗?我认为使用
String.Split
方法可以很简单地解决这个问题。你能否将每一行存储为一个字符串数组,然后执行
text[].Split(delimiter)
,它将解析/拆分分隔符之间的每个元素,并将其存储在一个单独的数组中?你的文件结构如何?是否每一行都是这样的:
\u variableName一些相关的文本
?比下一行更相似。你能举一个输入和预期输出的例子吗?我认为使用
String.Split
方法可以非常简单地解决这个问题
string[] textLines = File.ReadAllLines(@"c:\Users\Darren\Desktop\Hello.txt");
var results = new List<string>();

foreach(var line in textLines)
{
     var result = Regex.Replace(line, @"_(.*)\s", match =>
        {
            return $"~{match.Groups[1].Value.ToUpper()} ";
        });
    results.Add(result);
}
File.WriteAllLines(@"c:\Users\Darren\Desktop\newHello.txt", results.ToArray());