从分隔符之间的List <string>中删除字符(来自文本文件)

时间:2019-10-12 21:04:41

标签: c# regex list visual-studio replace

替换文本文件中文本的快速方法。 来自这个: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 然后将其保存为其他文本文件。

!记住域位总是在变化!

1 个答案:

答案 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中查看它如何与某些示例输入匹配。


RegEx电路

jex.im可视化正则表达式:

enter image description here