首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SpectreConsole中,如何剥离标记以获得纯文本字符串?

在SpectreConsole中,如何剥离标记以获得纯文本字符串?
EN

Stack Overflow用户
提问于 2022-07-20 12:25:16
回答 1查看 66关注 0票数 0

我使用的是Spectre.Console,有很多AnsiConsole.MarkupLine命令,如下所示:

代码语言:javascript
复制
AnsiConsole.MarkupLine($"[lime]File size:[/] [bold]\t{file.Length,-10}[/]");

我想以明文输出相同的文本,文本文件中没有颜色,如下

代码语言:javascript
复制
var msg = $"[lime]File size:[/] [bold]\t{file.Length,-10}[/]"
AnsiConsole.MarkupLine(msg);
var msgclean = AnsiConsole.StripTag(msg);
LogToFile(msgclean);

有办法去掉标签吗?还是以某种方式将控制台输出重定向到文件?

EN

回答 1

Stack Overflow用户

发布于 2022-07-20 13:29:02

看看下面的语言扩展是否适用于您。Regex模式取自这个职位。试着通过多管乐器

代码语言:javascript
复制
public static class StringExtensions
{
    private static readonly Regex Whitespace = new(@"\s+");

    public static string Flatten(this string value)
        => value is null or "" ?
            value :
            Whitespace.Replace(value.Trim(), " ");

    public static string StripCodes(this string sender)
        => Regex.Replace(sender, @"\[[^]]*\]", "")
            .Flatten();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73051618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档