Python中的正则表达式帮助。寻找RGB值的表达式

时间:2014-04-21 20:55:25

标签: python regex rgb

看起来我需要一些正则表达式的帮助来匹配RGB值。我已经构建了以下表达式,但它没有找到匹配项。它也是不够的,因为我需要扩展它以检查三位数,并且只存在0-255值。

例如。以下是我需要匹配的所有有效值:

0,0,0
0, 0, 0
255,255,255
255, 255, 255

这是我到目前为止所做的:

expression = re.compile(r'(\\d+),(,),(\\d+),(,),(\\d+)')
expression.match(text)

1 个答案:

答案 0 :(得分:6)

可以使用正则表达式确保数字在0到255之间,但我强烈建议不要使用它。这里更简单的方法是使用正则表达式捕获数字,并通过简单地转换为int并比较来检查它们是否在0到255之间:

>>> import re
>>> r = r"(\d+),\s*(\d+),\s*(\d+)"
>>> re.match(r, "0, 254,10").groups()
('0', '254', '10')
>>> all(0 <= int(group) <= 255 for group in re.match(r, "0, 254,10").groups())
True
>>> all(0 <= int(group) <= 255 for group in re.match(r, "0,256, 190").groups())
False