2015-05-14 110 views
0

我需要你的帮助!Python - 如何检查字符串是否为十六进制颜色代码

林有点新的什么关于python和“十六进制”。

我有一个网站,人们可以输入自己的HEX-Color作为消息。

所以目前我所拥有的一切建立在除“isHEXColor”检查..

我真的不知道我可以肯定的是,用户给了一个有效的十六进制颜色代码。

目前我只是检查len是否是6位数字,仅此而已。

if not len(color) == 6: return error("HEX-Color" must contain 6 characters") 

你能帮我吗? 它应该适用于Python 2.5!

+0

以前也有过类似的问题。检查这里http://stackoverflow.com/questions/11592261/check-if-string-is-hexadecimal看看这个答案可以帮助你。 –

+0

颜色代码不必包含6个十六进制数字;它们可以包含1到12位数字。 6是最常见的用法。 –

回答

8

你可以使用正则表达式:

^#(?:[0-9a-fA-F]{3}){1,2}$ 

在Python中使用正则表达式https://docs.python.org/2/library/re.html

import re 
str = '#ffffff' # Your Hex 

match = re.search(r'^#(?:[0-9a-fA-F]{3}){1,2}$', str) 

if match:      
    print 'Hex is valid' 

else: 
    print 'Hex is not valid' 
2

teoreda的使用正则表达式的命题,似乎没什么问题,但我认为正确的正则表达式是相当:

^#(?:[0-9a-fA-F]{1,2}){3}$ 

(每种颜色(r,g和b)有1或2个数字a nd有3种颜色)

+0

这将允许一个长度不是3或6的十六进制代码。https://regex101.com/r/oXR9FV/1 –

相关问题