【问题标题】:remove color codes from console text output从控制台文本输出中删除颜色代码
【发布时间】:2021-04-14 21:44:30
【问题描述】:

我有一个字符串,其中包含一些单词的颜色代码。例如:

[38;2;139;0;0mHello [38;2;255;255;255m[38;2;128;128;128mWorld [38;2;255;255;255m

我需要一种方法来删除这些代码。颜色代码值是动态的并且不断变化,但它具有 [38;2;r;g;bm 的模式。使用上述字符串的正则表达式应该返回 'Hello World'

到目前为止,我尝试了正则表达式^.*$,但没有成功。

我想在 Python 中执行此操作,而不是 Perl、sed 或 Bash。

有什么建议吗?或用 '' 替换的有效正则表达式。

【问题讨论】:

    标签: python-3.x regex


    【解决方案1】:

    您可以为这些颜色代码创建一个正则表达式,然后使用Pattern.sub() 方法,将一个空字符串作为第一个参数传递,以删除那些不需要的部分。

    与提供的模式匹配的正则表达式 ([38;2;r;g;bm):

    \[\d{,3}(;\d{,3}){4}m

    将此正则表达式与sub() 方法和提供的测试字符串一起使用:

    >>> import re
    >>> regex = re.compile(r"\[38;2(;\d{,3}){3}m")
    >>> regex.sub("", "[38;2;139;0;0mHello [38;2;255;255;255m[38;2;128;128;128mWorld [38;2;255;255;255m")
    'Hello World '
    

    【讨论】:

      猜你喜欢
      • 2015-01-10
      • 1970-01-01
      • 2016-08-20
      • 2018-01-07
      • 2013-08-02
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      相关资源
      最近更新 更多