Python 中正则表达式帮助。寻找 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 个回答
8
你可以用正则表达式来确保这些数字在0到255之间,但我不太推荐这样做。这里有个更简单的方法,就是用正则表达式抓取这些数字,然后把它们转换成整数,再进行比较,看看它们是不是在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