1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
def extractValues(color, numValues, isHex = False) :
print(color)
i = 0
tempValue = ''
extractedValues = []
if isHex :
# search for hex values
hexCharacters = ['a', 'b', 'c', 'd', 'e', 'f']
while i < len(color) :
if (color[i].isnumeric()) or (color[i] in hexCharacters) :
tempValue += color[i]
else :
tempValue = ''
if len(tempValue) == 6 :
extractedValues.append(tempValue)
tempValue = ''
if len(extractedValues) == numValues :
break
i = i + 1
if (len(extractedValues) != numValues) and (len(tempValue) == 6) :
extractedValues.append(tempValue)
else :
# search for decimal values
while i < len(color) :
if color[i].isnumeric() or color[i] == '.' :
tempValue += color[i]
elif len(tempValue) > 0 :
extractedValues.append(tempValue)
tempValue = ''
if len(extractedValues) == numValues :
break
i = i + 1
if (len(extractedValues) != numValues) and (len(tempValue) > 0) :
extractedValues.append(tempValue)
if len(extractedValues) != numValues :
print(f'Could not extract the desired number of values from input. Values requested: {numValues}, values extracted: {len(extractedValues)}, {extractedValues}')
return False
print(extractedValues)
return
def main() :
# hexcolor1 = '123abc'
# hexcolor2 = 'zx123abc def654'
# hexcolor3 = 'test sentence with hex in it: 123456, 654321, abc123, aefacd'
# extractValues(hexcolor1, 1, True)
# extractValues(hexcolor2, 1, True)
# extractValues(hexcolor2, 2, True)
# extractValues(hexcolor3, 4, True)
color1 = 'cmy(123, ba12.4, 51 )'
color2 = 't3st 123 456'
color3 = '1.23 word 3,2 1.34'
extractValues(color1, 3)
if __name__ == '__main__' :
main()
|