C# 从C中的文本中筛选RTF代码#

C# 从C中的文本中筛选RTF代码#,c#,regex,rtf,C#,Regex,Rtf,我试图解析作为文本文件接收的数据。我的目标是删除格式化代码。它看起来是富文本格式的,但我怀疑它包含一些专有代码。我怀疑这是因为当我运行下面的代码时,我得到一个错误,说“文件格式无效” public static string RemoveRTF(string rtfString) { RichTextBox rtb = new RichTextBox(); rtb.Rtf = rtfString; return rtb.Text;

我试图解析作为文本文件接收的数据。我的目标是删除格式化代码。它看起来是富文本格式的,但我怀疑它包含一些专有代码。我怀疑这是因为当我运行下面的代码时,我得到一个错误,说“文件格式无效”

    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;
}
公共静态字符串删除指定代码(字符串文本)
{
列表单词=新列表();
加上(“\\par\\pard”);
添加(“\\pard\\par”);
加上(“\\pard”);
加上(“\\par”);
添加(“\\~”);
输出=words.Aggregate(文本,(输入,单词)=>input.Replace(单词,”);
返回输出;
}

如果我知道所有的格式代码,这种方法是有效的,但是我有超过10000行要处理,并且我没有所有代码的列表(似乎有很多代码)。我怀疑正则表达式可能是删除代码的更合适的方法,但我对正则表达式几乎一无所知。有人能帮我开始吗?文本没有任何反斜杠,因此我想通过查找反斜杠来识别格式代码,然后删除反斜杠和所有内容,但不包括下一个反斜杠或空格。

一个选项是列出所有代码,然后使用StringBuilder.Replace(而不是string.Replace)。这可能是最快的解决方案。请注意,Microsoft不支持RTF。它可能会被记录(但仍然不受支持),谢谢@Flydog57的评论。我希望不要使用硬编码的代码列表。我不控制文本文件的内容,也不能保证以后不会向文件中添加其他代码。这就是我想使用正则表达式的原因。RTF代码有模式吗?正则表达式可能是一个解决方案,但您需要某种模式来匹配。一个选项是列出所有代码,然后使用StringBuilder.Replace(而不是string.Replace)。这可能是最快的解决方案。请注意,Microsoft不支持RTF。它可能会被记录(但仍然不受支持),谢谢@Flydog57的评论。我希望不要使用硬编码的代码列表。我不控制文本文件的内容,也不能保证以后不会向文件中添加其他代码。这就是我想使用正则表达式的原因。RTF代码有模式吗?正则表达式可能是一种解决方案,但您需要某种模式来匹配。