Удалить символы из списка <string>между разделителями (из текстового файла) - PullRequest
0 голосов
/ 13 октября 2019

Быстрый способ заменить текст в текстовом файле. Отсюда: somename@somedomain.com: hello_world Кому: somename: hello_world

Он должен быть БЫСТРОМ и поддерживать несколько строк текстового файла.

Я попытался разбить строку на три части, нокажется медленнымПример в приведенном ниже коде.

<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 @");
            }

        }


    }

Так что быстрый способ конвертировать каждую строку в текстовом файле от somename@somedomain.com: hello_world

To: somename:hello_world затем сохраните его в другом текстовом файле.

! Помните, что бит домена всегда меняется!

1 Ответ

0 голосов
/ 13 октября 2019

Скорее всего, не самый быстрый, но он довольно быстрый с выражением, аналогичным

@[^:]+

, и замените его пустой строкой.

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 . Если вы хотите, вы также можете посмотреть в эту ссылку , как она будет сопоставляться с некоторыми примерами входных данных.


RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...