gpt4 book ai didi

c# - 如何在C#中确定文本格式

转载 作者:太空狗 更新时间:2023-10-30 00:41:10 25 4
gpt4 key购买 nike

有没有办法确定C#/.NET中文本的格式

像这样的东西会非常有用。

public TextFormat TextTools.GetTextFormat(string text);

switch(TextTools.GetTextFormat(mystring))
{

case TextFormat.RichText: break;
case TextFormat.PlainText: break;

}

我在 msdn 上四处寻找,但找不到这样的工具

最佳答案

这是一个非常启发式的检查,但您可以尝试从类似这样的东西开始构建您自己的函数(当然您可以扩展它以处理不同的格式):

public static TextFormat GetFormat(string text) {
if (text.TrimStart().StartsWith(@"{\rtf", StringComparison.Ordinal))
return TextFormat.RichText;

return TextFormat.PlainText;
}

更好的检查意味着您解析 RTF 文本以确保它不仅仅是看起来像 RTF 的随机字符串。因为解析可能会很长(就时间而言),所以我建议首先进行快速检查以排除所有确定不是 RTF 的内容:

public static TextFormat GetFormat(string text) {
if (text.TrimStart().StartsWith(@"{\rtf", StringComparison.Ordinal)) {
if (IsValidRtf(text))
return TextFormat.RichText;
}

return TextFormat.PlainText;
}

在最嵌套的 if 中,您可以决定如何处理看似 RTF 但无效的文本(在本例中我只将其视为纯文本)。依赖于 RichTextBox 控件实现(然后向下到 Windows API 实现)的 IsValidRtf() 的可能的、幼稚且低效的实现可能是:

private static bool IsValidRtf(string text) {
try {
new RichTextBox().Rtf = text;
}
catch (ArgumentException) {
return false;
}

return true;
}

关于c# - 如何在C#中确定文本格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com