Фильтрация RTF-кодов из текста в C # - PullRequest
1 голос
/ 29 октября 2019

Я пытаюсь проанализировать данные, которые я получаю, в виде текстового файла. Моя цель состоит в том, чтобы удалить коды форматирования. Похоже, что он в Rich Text Format, но я подозреваю, что он содержит некоторые проприетарные коды. Я подозреваю, что это потому, что когда я запускаю следующий код, я получаю сообщение об ошибке «Формат файла недействителен».

    public static string RemoveRTF(string rtfString)
    {
        RichTextBox rtb = new RichTextBox();
        rtb.Rtf = rtfString;
        return rtb.Text;
    }

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

public static string RemoveSpecificCodes(string text)
{
    List<string> words = new List<string>();
    words.Add("\\par\\pard");
    words.Add("\\pard\\par");
    words.Add("\\pard");
    words.Add("\\par");
    words.Add("\\~");
    output = words.Aggregate(text, (input, word) => input.Replace(word, ""));
    return output;
}

Этот подход работает, если я знаю все коды формата, но у меня есть> 10000 строк для обработки, и у меня нет списка всех кодов (быть их много). Я подозреваю, что регулярное выражение может быть более подходящим способом удаления кодов, но я практически ничего не знаю о регулярных выражениях. Может ли кто-нибудь помочь мне начать? Текст не имеет обратной косой черты, поэтому я хотел бы определить коды формата, найдя обратную косую черту, а затем удалив обратную косую черту и все до, но не включая следующую обратную косую черту или пробел.

...