protected function patterns() { $patterns = array(); $measures_list = implode('|', parent::getMeasureAliases($this->measures)); $measures = $this->measures; $current_key = $this->current_key; $patterns = parent::generateSimplePatterns($current_key, $measures); 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() { $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('|', NumericSpecParser::getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Ширина', $this->measures); $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)); }; $patterns['/^\\d+$/mi'] = function ($matches) { return NULL; }; return $patterns; }
protected function patterns() { $measures = $this->measures; $measures_list = implode('|', NumericSpecParser::getMeasureAliases($measures)); $patterns = $this->generateSimplePatterns('Размеры', $this->measures); // 107x62x34 мм // 107x62 мм // мы не можем парсить такие значения так как не знаем очередность величин $patterns['/^(\\d+\\.?\\d*)\\s?x\\s?(\\d+\\.?\\d*)\\s?x\\s?(\\d+\\.?\\d*)\\s(' . $measures_list . ')$/mi'] = function ($matches) { return NULL; }; $patterns['/^(\\d+\\.?\\d*)\\s?x\\s?(\\d+\\.?\\d*)\\s(' . $measures_list . ')$/mi'] = function ($matches) { return NULL; }; // варианты с х в русской раскладке $patterns['/^(\\d+\\.?\\d*)\\s?х\\s?(\\d+\\.?\\d*)\\s?х\\s?(\\d+\\.?\\d*)\\s(' . $measures_list . ')$/mi'] = function ($matches) { return NULL; }; $patterns['/^(\\d+\\.?\\d*)\\s?х\\s?(\\d+\\.?\\d*)\\s(' . $measures_list . ')$/mi'] = function ($matches) { return NULL; }; // 31 - 36 // 31 - 36 (...) // похоже на размер одежды, и нет ед измерений, так что пропускаем $patterns['/^(\\d+\\.?\\d*)\\s?-\\s?(\\d+\\.?\\d*)$/mi'] = function ($matches) { return NULL; }; $patterns['/^(\\d+\\.?\\d*)\\s?-\\s?(\\d+\\.?\\d*)\\s?\\(.*\\)$/mi'] = function ($matches) { return NULL; }; // 31 // просто число без ед измерений, пропускаем $patterns['/^\\d+$/mi'] = function ($matches) { return NULL; }; return $patterns; }