Ruby Colorize gem:是否有方法从着色字符串获取颜色名称?
获取着色字符串的颜色名称(优先于代码)
嘿,刚好我对Ruby里的字符串着色这块挺熟的,给你捋捋最简便的实现方式——完全不用写正则!
如果你用的是Ruby生态里最常用的colorize gem,它本身就帮你封装好了这个需求:
- 给字符串着色后,直接调用
.color方法就能拿到符号形式的颜色名称,比如:
这正好是你想要的优先获取名称的效果,省心又靠谱。require 'colorize' "Hello".red.color # 返回 :red "Hello".light_blue.color # 返回 :light_blue - 如果需要字符串形式的名称(比如"red"而不是:red),加个
.to_s转换一下就行:"Hello".red.color.to_s # 返回 "red"
要是你用的是另一个流行的rainbow库,也有对应的便捷方法:
- 先通过
.foreground获取颜色对象,再调用.name就能拿到字符串形式的颜色名称:require 'rainbow' colored_str = Rainbow("Hello").red colored_str.foreground.name # 返回 "red"
当然,如果你是自己手动拼接ANSI代码实现的着色(这种情况其实很少见,毕竟成熟gem已经覆盖了大部分场景),那可能需要额外处理,但真心不建议自己造轮子——用现成的库方法不仅简便,还能避免ANSI代码变种带来的正则匹配错误。
内容的提问来源于stack exchange,提问作者kodr
相关产品推荐
相关产品推荐

