Использование регулярных выражений может решить вашу проблему. Например, в Python вы можете сделать следующее:
import re
input = "#content {width:100px;height:20.5%;font-size:150.25%;margin-left:-20px;padding:2 0 -20 14.33333;}"
regex = re.compile("-?[.0-9]+")
scaled_numbers = [float(n)*2 for n in re.findall(regex, input)]
split_text = re.split(regex, input)
output = ''
for i in range(len(scaled_numbers)):
output += "%s%.2f" % (split_text[i], scaled_numbers[i])
output += split_text[-1]
Этот код может быть уменьшен в длине, но я намеренно оставил его менее компактным для удобства чтения. Один недостаток заключается в том, что он сокращает числа с плавающей запятой только до 2 десятичных разрядов, но это можно легко изменить, если вам действительно нужны расширенные десятичные разряды (измените число в "%s%.2f"
на нужное количество знаков).
Обратите внимание, что этот код может изменять имена селекторов CSS (например, #footer-2
станет #footer-4.00
). Если вы хотите избежать этого, вам нужно настроить код так, чтобы он игнорировал текст за пределами {...}
.