WPF RichTextBox 保存Rtf 丢失 下划线问题
1.通过对比保存的Rtf 发现 少了\ul0 结束符号
将其中{\ul \'8e\'a9\},替换为{\ul \'8e\'a9\ul0}
2.正则查找下划线文字,添加结束符
/// <summary> /// 匹配Rtf中下划线 如:将其中{\ul \'8e\'a9\},替换为{\ul \'8e\'a9\ul0} /// (应为FlowDocument转换 带有下划线的文字时丢失下划线结束符ul0) /// </summary> /// <param name="rtf"></param> public static string RtfUndelineMatch(string rtf) { if (string.IsNullOrEmpty(rtf)) return string.Empty; ; string pattern = @"\\ul\s+\S{0,8}\}";// \ul\s+\S{0,8}\} return System.Text.RegularExpressions.Regex.Replace(rtf, pattern, (m) => { return m.Value.Insert(m.Value.LastIndexOf('}'), @"\ul0"); }); }