我正在用C#创建一个数字标牌应用程序,并且在删除2个部分之间的文本块时遇到了麻烦。我要删除的文字在[Video]和[Video_END]
之间在查看其他示例后,我一直尝试使用正则表达式来实现此目的,但是却出现编译器错误:
CS1502:“ System.Text.RegularExpressions.Regex.Replace(字符串,字符串,字符串,System.Text.RegularExpressions.RegexOptions)”的最佳重载方法匹配” 有一些无效参数
这是我的代码: StringBuilder newFile = new StringBuilder();
string[] file = File.ReadAllLines(@"C:\Intranet\Net\ProjectApollo\Screens\"+location);
var output = Regex.Replace(text, @"(?<=\[VIDEO\]).*(?=\[VIDEO_END\])", "", RegexOptions.Multiline);
我正在从一个示例中进行工作,并将2个标签更改为[VIDEO]和[VIDEO_END]
我通过这样做设法克服了编译器错误:
var输出= Regex.Replace(file.ToString(),@“(?<= [VIDEO])。*(?= [VIDEO_END])”,“”,RegexOptions.Multiline);
File.WriteAllText(@"C:\Intranet\Net\ProjectApollo\Screens\" + location, output);
但是,当我查看文件时,它删除了文件的所有内容。
我已经尝试过了:
字符串文本= text.ReadAllText(@“ C:\ Intranet \ Net \ ProjectApollo \ Screens \” + location);
然后
var output = Regex.Replace(text,@“(?s)(?<= [VIDEO])。*(?= [VIDEO_END])”,“”);
text.WriteAllText(@“ C:\ Intranet \ Net \ ProjectApollo \ Screens \” +位置,输出);
文件说它已经更改了,但查看后,VIDEO和VIDEO_END之间的内容仍然存在。
还有其他建议吗?
答案 0 :(得分:1)
您正在将string[] file
传递到Regex.Replace
。相反,您应该迭代string[] file
(也许最好使用string[] lines
并逐行处理它。
string[] file = File.ReadAllLines ...
file.Select(line=>Regex.Replace(line,...))