我有一个像这样的文本文件(.txt)
对话:0,0:00:01.99,0:00:03.84,默认,0000,0000,0000 ,,你走了!
对话:0,0:00:03.84,0:00:06.31,默认,0000,0000,0000 ,,和,再次!
对话:0,0:01:42.92,0:01:44.91,默认值,0000,0000,0000 ,,等待一分钟。
我想像这样
将“{”和“}”插入到该文件中对话:0,0:00:01.99,0:00:03.84,默认,0000,0000,0000 ,, {上你去!}
对话:0,0:00:03.84,0:00:06.31,默认,0000,0000,0000 ,, {又来!}
对话:0,0:01:42.92,0:01:44.91,默认,0000,0000,0000 ,, {等一下。}
我管理员使用这些代码将“}”插入到最后一个
String path = openFileDialog1.FileName;
List<string> line = new List<string>();
StreamReader sr = new StreamReader(path);
StringBuilder sb = new StringBuilder();
String lines;
while ((lines = sr.ReadLine()) != null)
{
line.Add(lines+"}");
}
foreach (string s in line)
{
sb.AppendLine(s);
}
我想在“0000”之后插入“{”。对不起我的Eng,谢谢你的帮助。
答案 0 :(得分:1)
while ((lines = sr.ReadLine()) != null)
{
var index = line.LastIndesOf(",,") + 2;
lines = lines.Insert(index, "{");
line.Add(lines+"}");
}
答案 1 :(得分:1)
假设您的格式在对话框之前包含9个逗号分隔的部分:
string InsertBrackets(string input)
{
var idx = -1;
for (int i = 0; i < 9; i++)
idx = input.IndexOf(",", idx + 1);
return input.Insert(idx + 1, "{") + "}";
}
如果您愿意,也可以将部分数作为参数传递,而不是硬编码为9。当然还要添加一些错误检查。
答案 2 :(得分:0)
好像是某种副标题。
在这种情况下,您只需计算遇到的,
的数量。其余的是文字对话,你可以用{}
包围。
我不是用C#编写的,但应该有一个函数允许你用正则表达式拆分String。只需使用它来分割逗号,
,并指定分割数限制(在这种情况下,分隔符的数量为9)。然后用{}
选择要包围的最后一个标记,然后重新加入字符串。
答案 3 :(得分:0)
以下是ideone中的一个工作示例。
简而言之,这是添加大括号的函数(此解决方案取决于您使用逗号分隔的相同数量的字段的事实,并且只有最后一个字段可能有逗号):
public static string AddBraces(string u) {
string[] words = u.Split(',');
string res = words[0];
words[9] = "{" + words[9];
for (int i = 1; i < words.Length;++i) {
res = res + ',' + words[i];
}
res = res + "}";
return res;
}
答案 4 :(得分:0)
假设您在要更改的文本之前总是有两个逗号(从您的评论中可能就是这种情况),您可以尝试这样的事情:
String str = "Dialogue: 0,0:00:01.99,0:00:03.84,Default,,0000,0000,0000,,Up you go!";
String newStr = Regex.Replace(str, "(.*,,)(.*)$", "$1{$2}");
System.Console.WriteLine(str);
System.Console.WriteLine(newStr);
System.Console.ReadKey();
这产生以下结果:
Dialogue: 0,0:00:01.99,0:00:03.84,Default,,0000,0000,0000,,Up you go!
Dialogue: 0,0:00:01.99,0:00:03.84,Default,,0000,0000,0000,,{Up you go!}
此正则表达式:(.*,,)(.*)$
将匹配两个组。第一组将包含字符串的开头,直到最后两个逗号。第二组将包含最后两个逗号后面的文本,并保持匹配直到字符串结尾。
"$1{$2}"
部分会将第一个匹配的组替换为给定的字符串,然后是{
,然后是第二个匹配的组,然后是}
。< / p>