我有一些十六进制值的字符串。例子:
<font color=**"&amp;****amp;**;**amp;#x23;**336699">Hi How ARE YOU</font>
我想将上面的字符串存储到数据库中。在这个字符串中我找到了一些十六进制值。在存储时我想将十六进制转换为字符串。C#.net 中是否有任何解决方案。
我有一些十六进制值的字符串。例子:
<font color=**"&amp;****amp;**;**amp;#x23;**336699">Hi How ARE YOU</font>
我想将上面的字符串存储到数据库中。在这个字符串中我找到了一些十六进制值。在存储时我想将十六进制转换为字符串。C#.net 中是否有任何解决方案。
要解析十六进制,您将执行以下操作:
var hex = "0xFFFFFF";
uint color;
if(uint.TryParse(hex, NumberStyles.HexNumber, CultureInfo.CurrentCulture, out color))
{
//Parsing ok
}else{
color = 0; //Parsing failed
}
我不知道你上面的字符串,所以我不确定如何从中提取十六进制。
编辑#1:
据我了解,您想解析此字符串
<font color=**"&amp;****amp;**;**amp;#x23;**336699">Hi How ARE YOU</font>
并产生这条线
<font color=0x0987AF>Hi How ARE YOU</font>
我不知道你的颜色代码是如何创建的,所以我无法解析它。
它嵌入到常规语言中,您可以使用正则表达式将重要的和平组合在一起并解析这些结果。如果它是 HTML 或类似的东西,你不能使用正则表达式,而应该逐个字符地遍历它。在这种情况下,请使用 StringBuilder 来保持您的代码速度。
将所有字符串组合在一起后,您可以单独解析它们,计算颜色,然后String.Format(""{0:X06}"", color)
再次将其输出为十六进制。
编辑#2:
我不知道那个颜色字符串的编码,所以我只能粗略估计我将如何解析它。
我假设该字符串中的最后一个数字是颜色,其他一切都只是噪音。所以这
<font color=**"&amp;****amp;**;**amp;#x23;**336699">Hi How ARE YOU</font>
应该变成这个
<font color="&336699">Hi How ARE YOU</font>
我没有展示隔离颜色字符串的第一部分,但我想指出你不应该尝试在 html 上使用正则表达式。而是像使用数学表达式一样逐个字符地遍历它。
String examplestring = @"color=**""&amp;****amp;**;**amp;#x23;**336699""";
Console.WriteLine(examplestring);
String lastsixnumbers = examplestring.Substring(examplestring.Length - 7, 6);
Console.WriteLine(lastsixnumbers);
String final = String.Format("color=\"#{0}\"", lastsixnumbers);
Console.WriteLine(final);
Console.ReadKey();
这有帮助吗?如果不是,那么我对颜色代码的理解可能是错误的 - 然后您能否使用颜色代码提供更多实际匹配的结果,或者更好地为我提供颜色编码的知识。