protected function patterns() { $measure_aliases = array('Гб' => array('Гб', 'ГБ'), 'Мб' => array('Мб', 'МБ'), 'Тб' => array('Тб', 'ТБ')); $current_key = $this->current_key; $measures_list = implode('|', $this->getMeasureAliases($measure_aliases)); $patterns = $this->generateSimplePatterns($current_key, $measure_aliases); // 1 модуль 16 Гб $patterns['/^1\\sмодуль\\s(\\d+)\\s(' . $measures_list . ')$/mi'] = function ($matches) use($measure_aliases, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measure_aliases)); }; // 4 модуля по 4 Гб $patterns['/^(\\d+)\\sмодуля\\sпо\\s(\\d+)\\s(' . $measures_list . ')$/mi'] = function ($matches) use($measure_aliases, $current_key) { return array('key' => $current_key, 'value' => $matches[1] * $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measure_aliases)); }; // 8 модулей по 8 Гб $patterns['/^(\\d+)\\sмодулей\\sпо\\s(\\d+)\\s(' . $measures_list . ')$/mi'] = function ($matches) use($measure_aliases, $current_key) { return array('key' => $current_key, 'value' => $matches[1] * $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measure_aliases)); }; // 4 Гб ( ... ) $patterns['/^(\\d+)\\s(' . $measures_list . ')\\s\\(.+\\)$/mi'] = function ($matches) use($measure_aliases, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measure_aliases)); }; // 1...3 Гб => 3 Гб $patterns['/^(\\d+\\.?\\d*)\\.\\.\\.(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measure_aliases, $current_key) { return array('key' => $current_key, 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measure_aliases)); }; return $patterns; }
protected function patterns() { $patterns = array(); $measures_list = implode('|', parent::getMeasureAliases($this->measures)); $measures = $this->measures; $patterns['/(\\d+)\\s?(' . $measures_list . ')/mi'] = function ($matches) use($measures) { $min_key = array_search(min($matches[1]), $matches[1]); return array('key' => 'Отношение сигнал/шум (не меньше)', 'value' => $matches[1][$min_key], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2][$min_key], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); //$patterns = $this->generateSimplePatterns('Поддержка карт памяти', $measures); $patterns = array(); $patterns['/.*до\\s(\\d+)\\s?(' . $measures_list . ').*/i'] = function ($matches) use($measures) { return array('value' => $matches[1], 'key' => 'Поддержка карт памяти, до', 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; return $patterns; }
protected function patterns() { $measure_aliases = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measure_aliases)); $current_key = $this->current_key; $patterns = []; $patterns['/(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measure_aliases, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measure_aliases)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Частота процессора', $measures); // 0...5600 мА·ч $patterns['/^(\\d+\\.?\\d*)\\.\\.\\.(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('key' => 'Частота процессора', 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Импеданс', $measures); // 4-8 Ом $patterns['/^(\\d+\\.?\\d*)\\s?(-|–)\\s?(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('key' => 'Импеданс', 'value' => $matches[3], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = []; // строк: 24-94 кГц; кадров: 50-76 Гц $patterns['/(\\d\\.?\\d*)\\s?(' . $measures_list . ')/mi'] = function ($matches) use($measures) { $max_key = array_search(max($matches[1]), $matches[1]); return array('key' => 'Коэффициент гармоник (не больше)', 'value' => $matches[1][$max_key], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2][$max_key], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Чувствительность', $this->measures); // 0.16 мкВ (12dB SINAD) // 83 дБ (Вт/м) $patterns['/^(\\d+\\.?\\d*)\\s?(' . $measures_list . ')\\s\\(.*\\)$/mi'] = function ($matches) use($measures) { return array('key' => 'Чувствительность', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; return $patterns; }
protected function patterns() { $patterns = array(); $measures_list = implode('|', parent::getMeasureAliases($this->measures)); $measures = $this->measures; $current_key = $this->current_key; $patterns['/(\\d+)\\s?(' . $measures_list . ')/mi'] = function ($matches) use($measures, $current_key) { $max_key = array_search(max($matches[1]), $matches[1]); return array('key' => $current_key, 'value' => $matches[1][$max_key], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2][$max_key], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns($this->current_key, $measures); $patterns['/^(\\d+\\.?\\d*)\\.\\.\\.(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { $return = []; $return[] = array('key' => 'Вылет (ET), от', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); $return[] = array('key' => 'Вылет (ET), до', 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); return $return; }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); // 3 - 33000 Гц $patterns['/^(\\d+)\\s?(-|–)\\s?(\\d+)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array(array('key' => 'Минимальная частота', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $measures)), array('key' => 'Максимальная частота', 'value' => $matches[3], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $measures))); }; // 35-20000 Гц (-10 дБ) $patterns['/^(\\d+)\\s?(-|–)\\s?(\\d+)\\s?(' . $measures_list . ')\\s\\(.*\\)$/mi'] = function ($matches) use($measures) { return array(array('key' => 'Минимальная частота', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $measures)), array('key' => 'Максимальная частота', 'value' => $matches[3], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $measures))); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Уровень шума', $this->measures); // 19-21 дБА $patterns['/^(\\d+\\.?\\d*)\\s?-\\s?(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('key' => 'Уровень шума', 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // до 40 дБ $patterns['/^до\\s(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('key' => 'Уровень шума', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $current_key = $this->current_key; $patterns = $this->generateSimplePatterns($current_key, $measures); // строк: 24-94 кГц; кадров: 50-76 Гц $patterns['/^строк:\\s\\d+-\\d+\\sкГц;\\sкадров:\\s(\\d+)-(\\d+)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // ...кадров: 50-76 Гц... $patterns['/.*кадров:\\s(\\d+)-(\\d+)\\s(' . $measures_list . ').*/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns($this->current_key, $measures); if ($this->current_key == 'Водостойкость тента/дна') { // 5000 / 5000 мм в.ст. $patterns['/^(\\d+)\\s\\/\\s(\\d+)\\s(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { $return = []; $return[] = array('key' => 'Водостойкость тента', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); $return[] = array('key' => 'Водостойкость дна', 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); return $return; }; } return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = array(); $patterns['/^(\\d+\\.?\\d*)\\s?x\\s?(\\d+\\.?\\d*)\\s?x\\s?(\\d+\\.?\\d*)\\s(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { $measure = \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $measures); return array(array('key' => 'Ширина', 'value' => $matches[1], 'measure' => $measure), array('key' => 'Глубина', 'value' => $matches[2], 'measure' => $measure), array('key' => 'Высота', 'value' => $matches[3], 'measure' => $measure)); }; // вариант с х в русской раскладке $patterns['/^(\\d+\\.?\\d*)\\s?х\\s?(\\d+\\.?\\d*)\\s?х\\s?(\\d+\\.?\\d*)\\s(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { $measure = \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $measures); return array(array('key' => 'Ширина', 'value' => $matches[1], 'measure' => $measure), array('key' => 'Глубина', 'value' => $matches[2], 'measure' => $measure), array('key' => 'Высота', 'value' => $matches[3], 'measure' => $measure)); }; return $patterns; }
protected function patterns() { $current_key = $this->current_key; $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns($this->current_key, $measures); // при работе: 90 Вт* $patterns['/^при\\sработе:\\s(\\d+(\\.|,)?\\d*)\\s(' . $measures_list . ').*/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => str_replace(',', '.', $matches[1]), 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // 90 Вт* $patterns['/^(\\d+)\\s?(' . $measures_list . ').+/'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; $patterns['/^(\\d+(\\.|,){1}\\d+)\\s?(' . $measures_list . ').+/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => str_replace(',', '.', $matches[1]), 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Чувствительность', $this->measures); // 100 - 3200 ISO $patterns['/^(\\d+\\.?\\d*)\\s?-\\s?(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('key' => 'Чувствительность', 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // 100 - 3200 ISO ... $patterns['/^(\\d+\\.?\\d*)\\s?-\\s?(\\d+\\.?\\d*)\\s?(' . $measures_list . ')/mi'] = function ($matches) use($measures) { return array('key' => 'Чувствительность', 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // 100 ISO ... $patterns['/^(\\d+)\\s?(' . $measures_list . ')/mi'] = function ($matches) use($measures) { return array('key' => 'Чувствительность', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); return array('/^(\\d+\\.{1}\\d+)\\s?(' . $measures_list . '){1}$/mi' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); return $parsed; }, '/^(\\d+)\\s?(' . $measures_list . '){1}$/mi' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); return $parsed; }, '/^(\\d+\\.{1}\\d+)\\s?(' . $measures_list . '){1}(.*)/i' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); return $parsed; }, '/^(\\d+)\\s?(' . $measures_list . '){1}(.*)/i' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); return $parsed; }, '/^(\\d+\\.{0,1}\\d*)\\.\\.\\.(\\d+\\.{0,1}\\d*)\\s*(' . $measures_list . '){1}$/mi' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); return $parsed; }, '/^(\\d+\\.{0,1}\\d*)-(\\d+\\.{0,1}\\d*)\\s*(' . $measures_list . '){1}$/mi' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); return $parsed; }, '/^(\\d+)\\,{1}(\\d+)\\s?(' . $measures_list . '){1}$/mi' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[1] . '.' . $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); return $parsed; }, '/^(\\d+\\.{1}\\d+)$/mi' => function ($matches) use($measures) { $parsed = array(); $parsed[] = array('value' => $matches[1], 'measure' => 'кг'); return $parsed; }, '/^(\\d+)$/mi' => function ($matches) { $parsed = array(); $parsed[] = array('value' => $matches[1], 'measure' => 'кг'); return $parsed; }); }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $current_key = $this->current_key; $patterns = $this->generateSimplePatterns($current_key, $measures); // 50" (127 см) $patterns['/^(\\d+)\\s?(' . $measures_list . ')\\s\\(\\d+\\sсм\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; $patterns['/^(\\d+(\\.|,){1}\\d+)\\s?(' . $measures_list . ')\\s\\(\\d+\\sсм\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; if ($current_key == 'Диагональ экрана') { $patterns['/^(\\d\\.?\\d*)$/'] = function ($matches) use($current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => 'дюйм.'); }; } return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Емкость аккумулятора', $measures); // 7000 мА⋅ч (26 Вт⋅ч) $patterns['/^(\\d+\\.?\\d*)\\s?(' . $measures_list . ')\\s\\(.*\\)$/mi'] = function ($matches) use($measures) { return array('key' => 'Емкость аккумулятора', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; // 0...5600 мА·ч $patterns['/^(\\d+\\.?\\d*)\\.\\.\\.(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('key' => 'Емкость аккумулятора', 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // 700 мА*ч или 150 фотографий $patterns['/^(\\d+\\.?\\d*)\\s?(' . $measures_list . ').*/mi'] = function ($matches) use($measures) { return array('key' => 'Емкость аккумулятора', 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; // 700 фотографий $patterns['/^(\\d+)\\sфотографий$/mi'] = function ($matches) use($measures) { return array('key' => 'Емкость аккумулятора', 'value' => $matches[1], 'measure' => 'фотографий'); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); // We can't use $this->generateSimplePatterns() as it can't work with parse() using preg_match_all; $patterns = array(); $patterns['/^(\\d+)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('value' => $matches[1][0], 'key' => 'Угол обзора', 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2][0], $measures)); }; $patterns['/^(\\d+\\.\\d+)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('value' => $matches[1][0], 'key' => 'Угол обзора', 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2][0], $measures)); }; // 8.12 - 75.24 град.мин $patterns['/^(\\d+\\.?\\d*)\\s?-\\s?(\\d+\\.?\\d*)\\s?(' . $measures_list . ')$/mi'] = function ($matches) use($measures) { return array('value' => $matches[2][0], 'key' => 'Угол обзора', 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3][0], $measures)); }; // 145° (по диагонали), 125° (по ширине), 166° (по высоте) // select the max one $patterns['/(^|\\s)(\\d+)\\s?(' . $measures_list . ')/i'] = function ($matches) use($measures) { $max_key = array_search(max($matches[2]), $matches[2]); return array('value' => $matches[2][$max_key], 'key' => 'Угол обзора', 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3][$max_key], $measures)); }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', $this->getMeasureAliases($measures)); $electric_measures = array_diff_key($measures, array('л.с.' => '')); $electric_measures_list = implode('|', $this->getMeasureAliases($electric_measures)); $current_key = $this->current_key; $patterns = $this->generateSimplePatterns($this->current_key, $measures); // 10...12 л.с. => 12 л.с. $patterns['/^(\\d+\\.?\\d*)\\.\\.\\.(\\d+\\.?\\d*)\\s(' . $measures_list . ')$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // XX Вт (номинальная) $patterns['/^(\\d+)\\s(' . $measures_list . ')\\s\\(номинальная\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key == 'Мощность' ? 'Мощность номинальная' : $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; $patterns['/^(\\d+\\.\\d+)\\s(' . $measures_list . ')\\s\\(номинальная\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key == 'Мощность' ? 'Мощность максимальная' : $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; // XX Вт (максимальная) $patterns['/^(\\d+)\\s(' . $measures_list . ')\\s\\(максимальная\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key == 'Мощность' ? 'Мощность максимальная' : $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; $patterns['/^(\\d+\\.\\d+)\\s(' . $measures_list . ')\\s\\(максимальная\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key == 'Мощность' ? 'Мощность максимальная' : $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; // 2400 Вт (выходная 1600 Вт) $patterns['/^(\\d+)\\s(' . $electric_measures_list . ')\\s\\(выходная\\s(.+)\\s(' . $electric_measures_list . ')\\)$/mi'] = function ($matches) use($electric_measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $electric_measures)); }; $patterns['/^(\\d+\\.\\d+)\\s(' . $electric_measures_list . ')\\s\\(выходная\\s(.+)\\s(' . $electric_measures_list . ')\\)$/mi'] = function ($matches) use($electric_measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $electric_measures)); }; // 800 ВА / 480 Вт $patterns['/^(\\d|\\.)+\\sВА\\s\\/\\s(\\d+)\\s(' . $electric_measures_list . ')$/mi'] = function ($matches) use($electric_measures, $current_key) { return array('key' => $current_key, 'value' => $matches[2], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $electric_measures)); }; $patterns['/^(\\d|\\.)+\\s(ВА|кВ·А)\\s\\/\\s(\\d+\\.\\d+)\\s(' . $electric_measures_list . ')$/mi'] = function ($matches) use($electric_measures, $current_key) { return array('key' => $current_key, 'value' => $matches[3], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[4], $electric_measures)); }; // 300 Вт, при блокировке мотора: 2000 Вт $patterns['/^(\\d+)\\s(' . $electric_measures_list . '),\\sпри\\sблокировке\\sмотора:\\s((\\d|\\.)+)\\s(' . $electric_measures_list . ')$/mi'] = function ($matches) use($electric_measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $electric_measures)); }; $patterns['/^(\\d+\\.\\d+)\\s(' . $electric_measures_list . '),\\sпри\\sблокировке\\sмотора:\\s((\\d|\\.)+)\\s(' . $electric_measures_list . ')$/mi'] = function ($matches) use($electric_measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $electric_measures)); }; // 2400 <measure> (...) $patterns['/^(\\d+)\\s?(' . $measures_list . ')\\s\\(.+\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => $matches[1], 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; $patterns['/^(\\d+(\\.|,){1}\\d+)\\s?(' . $measures_list . ')\\s\\(.+\\)$/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => str_replace(',', '.', $matches[1]), 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; // 2400 <measure>... $patterns['/^(\\d+)\\s?(' . $measures_list . ').+/'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => str_replace(',', '.', $matches[1]), 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[2], $measures)); }; $patterns['/^(\\d+(\\.|,){1}\\d+)\\s?(' . $measures_list . ').+/mi'] = function ($matches) use($measures, $current_key) { return array('key' => $current_key, 'value' => str_replace(',', '.', $matches[1]), 'measure' => \common\spec_parsers\NumericSpecParser::getMeasureByAlias($matches[3], $measures)); }; return $patterns; }