gpt4 book ai didi

c# - 删除字符串的特定部分

转载 作者:太空宇宙 更新时间:2023-11-03 19:49:44 27 4
gpt4 key购买 nike

我想遍历一个文本文件并删除字符串的特定部分。在这种情况下,我想删除路径:

PERFORMER "Charles Lloyd"

TITLE "Mirror"

FILE "Charles Lloyd\[2010] Mirror\01. I Fall In Love Too Easily.wav" WAVE

TRACK 01 AUDIO

FILE "Charles Lloyd\[2010] Mirror\02. Go Down Moses.wav" WAVE

PERFORMER "Charles Lloyd"

TITLE "Mirror"

FILE "01. I Fall In Love Too Easily.wav" WAVE //here are the changes

TRACK 01 AUDIO

FILE "02. Go Down Moses.wav" WAVE //here are the changes

我试过类似的东西:(给定包含整个文本的字符串 s)

s = s.Remove(s.IndexOf("FILE") + 5, (s.IndexOf("\\") + 1) - s.IndexOf("FILE") - 5);

并重复此函数以删除“FILE”“和后面的反斜杠之间的部分

它正确地删除了部分,但我必须手动调整它必须运行此函数的次数(每行每个反斜杠运行一次)。但是这个算法缺乏灵 active ,我不知道如何让它接近以“FILE”开头的下一行并重新开始这个过程......

最佳答案

如果您的所有文本都是一个字符串变量,您可以先将其拆分,然后对所有字符串进行替换,然后再次合并(假设您的文本是变量 lines):

var strings = lines.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
var replacedStrings = new List<string>();
foreach (var s in strings)
{
string replaced;
if (s.StartsWith("FILE"))
{
var sWithoutFile = s.Substring(5);
replaced = s.Substring(0, 6) +
sWithoutFile.Substring(sWithoutFile.LastIndexOf("\\") + 1);
}
else
{
replaced = s;
}
replacedStrings.Add(replaced);
}
var result = string.Join(Environment.NewLine, replacedStrings);

关于c# - 删除字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com