十六进制对到十六进制简写

发布于 2024-09-04 03:14:29 字数 348 浏览 2 评论 0原文

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

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

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

I have a bunch of Color objects (.Net). I want to convert them to Hex, which is simple enough with something like:

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

Is there a way in .Net or through RegEx (or some other way) that I can determine if Hex shorthand (like #F00) is available for the specified Color and then convert it to that? So for colors that can have a Hex shorthand, convert to that, otherwise, convert to Hex Pair #FF0000.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我不咬妳我踢妳 2024-09-11 03:14:29
^#([0-9A-F])\1([0-9A-F])\2([0-9A-F])\3$

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

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

This uses 3 back-references to check that each hex digit is followed by a copy. So anything with the pattern #xxyyzz (which can be converted to #xyz) matches.

乄_柒ぐ汐 2024-09-11 03:14:29

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

简写十六进制表示法

因此,理论上,任何允许您分析十六进制 RGB 值并检测“重复双精度”字符值应该能够将其简化为十六进制速记。

干杯

This link describes how the Shorthand Hex Notation works.

Shorthand Hex Notation

So, in theory, any implementation that will allow you to analyze a Hex RGB value and detect "duplicate double" character values should be able to reduce it to a Hex Shorthand.

Cheers

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文