替换文本文件中文本的快速方法。 来自这个:somename@somedomain.com:hello_world 为此:somename:hello_world
它必须是FAST,并支持多行文本文件。
我尝试将字符串分成三部分,但似乎很慢。下面的代码示例。
<pre><code>
public static void Conversion()
{
List<string> list = File.ReadAllLines("ETU/Tut.txt").ToList();
Console.WriteLine("Please wait, converting in progress !");
foreach (string combination in list)
{
if (combination.Contains("@"))
{
write: try
{
using (StreamWriter sw = new
StreamWriter("ETU/UPCombination.txt", true))
{
sw.WriteLine(combination.Split('@', ':')[0] + ":"
+ combination.Split('@', ':')[2]);
}
}
catch
{
goto write;
}
}
else
{
Console.WriteLine("At least one line doesn't contain @");
}
}
}</code></pre>
一种快速的方法来转换文本文件中的每一行 somename@somedomain.com:hello_world
收件人:某人名:hello_world 然后将其保存为其他文本文件。
!记住域位总是在变化!
答案 0 :(得分:0)
很有可能不是最快的,但是用类似的表达式却很快,
@[^:]+
并将其替换为空字符串。
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"@[^:]+";
string substitution = @"";
string input = @"somename@somedomain.com:hello_world1
somename@some_other_domain.com:hello_world2";
RegexOptions options = RegexOptions.Multiline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}
如果您希望简化/修改/探索表达式,请在regex101.com的右上角进行说明。如果愿意,您还可以在this link中查看它如何与某些示例输入匹配。
jex.im可视化正则表达式: