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