Просто поместите выражение для расширения в группу, запишите его и укажите совпадение в замене:
re.sub(r'(?:_a)?(\.[^\.]*)$' , r'_suff\1',"long.file.name.jpg")
Кроме того, использование группы, не содержащей захвата (?:…)
, предотвратит повторную запись к большой ненужной информации.
Предполагая, что вам нужен массив объектов для вашего вывода, вы можете .map
Object.entries
вашего ввода:
const obj = {
"ABC":{"minValue":0,"maxValue":5},
"XYZ":{"minValue":0,"maxValue":5},
"PQR":{"minValue":0,"maxValue":5},
"overall":{"minValue":0,"maxValue":5}
};
const arr = Object.entries(obj).map(([type, { minValue, maxValue }]) => ({
type,
minValue,
maxValue
}));
console.log(arr);
Вы можете использовать Object.entries()
и .map()
, чтобы получить массив объектов:
const data = {
"ABC": {"minValue": 0,"maxValue": 5},
"XYZ": {"minValue": 0,"maxValue": 5},
"PQR": {"minValue": 0,"maxValue": 5},
"overall": {"minValue": 0,"maxValue": 5}
};
const result = Object.entries(data)
.map(([ k, v ]) => Object.assign({}, {type: k}, v));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }