Python 如何从文件中提取灰色色码

Python 如何从文件中提取灰色色码,python,html,Python,Html,以及解析HTML文件。但是我需要排除灰色,我现在用黑色,但灰色有很多变化,如果条件允许,我可以知道如何使用它 if style.find("color")>=0: aux = style[style.find("color"):] aux = aux[0:aux.find(";") + 1] if aux.find('#000000') < 0 and aux

以及解析HTML文件。但是我需要排除灰色,我现在用黑色,但灰色有很多变化,如果条件允许,我可以知道如何使用它

if style.find("color")>=0:
        aux = style[style.find("color"):]
        aux = aux[0:aux.find(";") + 1]
        
        if aux.find('#000000') < 0 and aux.find('black') < 0 and aux.find('#000') < 0: 
            use_raw = '%s%s' % (use_raw, aux)
if style.find(“color”)>=0:
aux=style[style.find(“color”):]
aux=aux[0:aux.find(“;”)+1]
如果辅助查找('000000')<0,辅助查找('black')<0,辅助查找('000')<0:
使用\u原始=“%s%s%”(使用\u原始,辅助)

这就是我排除黑色的方法,但这里我也要排除灰色。

你可以这样做

    for i in ["lightgray", "lightgrey", "silver", "darkgray", "darkgrey",
            "gray", "grey", "dimgray", "dimgrey", "darkslategrey"]:
        if aux.find(i)<0:
            use_raw = '%s%s' % (use_raw, aux)
    for i in range(1,256):
        if aux.find('#%02x%02x%02x'%(i,i,i))<0 and format(i<<16 | i<<8 | i, '06X')<0 and format(i<<16 | i<<8 | i, '06x')<0:
            use_raw = '%s%s' % (use_raw, aux)
我在[“浅灰色”、“浅灰色”、“银色”、“暗灰色”、“暗灰色”,
“灰色”、“灰色”、“浅灰色”、“浅灰色”、“深灰色”]:
如果辅助查找(i)
您可以使用正则表达式<代码>^#([a-fA-F0-9]{1,2})\1\1$
将识别所有6位和3位灰色十六进制颜色


解释 识别“灰色” 所有灰色十六进制颜色代码都有3组2位3个相同的数字。e、 g.
#151515
#1c1c
#2e2e
#4242
#555
#EEE
。。。。。这就是我们如何将它们识别为灰色

确定字符串是否符合“灰色”格式 因此,我会使用正则表达式。以下正则表达式将匹配所有字符串,这些字符串以
#
开头,并包含3组相同的连续2位字母数字字符。因此,匹配所有灰色

^#([a-fA-F0-9]{1,2})\1\1$
应用Python 请参阅关于正则表达式的Python文档:

参考资料:
  • 评论

“纯”灰色对于RGB值始终具有相同的值,您可以将值
000000
拆分为3组,每组2位数字,每种颜色一组,如果3组相等,则为灰色。但是,在python中,我们无法拆分值,因为它会引发错误,您应该可以使用切片。去掉
并检查
x[:2]==x[2:4]==x[4://code>其中x是十六进制颜色。正则表达式?Rachit,这个正则表达式对你有用吗?你可以将你的正则表达式改成
^([a-fA-F0-9]{1,2})\1$
,它应该适用于三位数的颜色。没想到,谢谢@Blender!我修改了答案哪部分不起作用?我需要更具体的帮助:)@RachitAgarwal,这个列表涵盖了所有的基地。该范围的for功能设计用于覆盖所有六位3位、6位和RGB颜色代码。
import re
pattern = re.compile("^#([a-fA-F0-9]{1,2})\1\1$")
pattern.match(aux)