六角形对十六进制速记

时间:2010-06-04 19:03:01

标签: .net colors hex

我有一堆Color个对象(.Net)。我想将它们转换为Hex,这很简单,例如:

Dim clr As Color = Color.FromArgb(255, 0, 0)
Dim clrString = ColorTranslator.ToHtml(clr)

在.Net中还是通过RegEx(或其他方式),我可以确定Hex速记(如#F00)是否可用于指定的Color,然后将其转换为?因此,对于可以使用十六进制速记的颜色,请转换为该颜色,否则,转换为十六进制对#FF0000

2 个答案:

答案 0 :(得分:3)

^#([0-9A-F])\1([0-9A-F])\2([0-9A-F])\3$

这使用3个反向引用来检查每个十六进制数字后面是否有副本。所以模式#xxyyzz(可以转换为#xyz)的任何东西都匹配。

答案 1 :(得分:1)

此链接描述了速记十六进制表示法的工作原理。

Shorthand Hex Notation

因此,理论上,任何允许您分析Hex RGB值并检测“重复双”字符值的实现应该能够将其缩小为Hex Shorthand。

干杯