我有一堆Color
个对象(.Net)。我想将它们转换为Hex,这很简单,例如:
Dim clr As Color = Color.FromArgb(255, 0, 0)
Dim clrString = ColorTranslator.ToHtml(clr)
在.Net中还是通过RegEx(或其他方式),我可以确定Hex速记(如#F00
)是否可用于指定的Color
,然后将其转换为?因此,对于可以使用十六进制速记的颜色,请转换为该颜色,否则,转换为十六进制对#FF0000
。
答案 0 :(得分:3)
^#([0-9A-F])\1([0-9A-F])\2([0-9A-F])\3$
这使用3个反向引用来检查每个十六进制数字后面是否有副本。所以模式#xxyyzz(可以转换为#xyz)的任何东西都匹配。
答案 1 :(得分:1)
此链接描述了速记十六进制表示法的工作原理。
因此,理论上,任何允许您分析Hex RGB值并检测“重复双”字符值的实现应该能够将其缩小为Hex Shorthand。
干杯