|
Подскажите решение, найти ширину и высоту из текста Евро конверт 85х170 |
☑ |
0
Храбрый
21.03.14
✎
12:34
|
Занимаюсь конвертацией.
Есть входящие форматы:
- Евро конверт 85х170
- Middle 140x195
- Больше большой тройник 123х226
- Сумка DE 115х145х65 (тут только ширину и высоту, третий параметр не нужен.)
- 8,5х18,5 см (тут видимо если запятую встретим, то умножить на 10, чтобы перевести в мм)
- Малый гигант 200х277
- Мини 70х70
х - это русская буква х.
Нужно вытащить из них ширину (в мм) и высоту (в мм) и формат товара (Middle, Евро конверт, Мини, Больше большой тройник и т.д.).
2 алгоритма на уме, оба не нравятся.
1. алгоритм
Найти "х" справа и слева брать цифры и запятую пока не закончатся. Боюсь чтоб буква х будет встречаться в форматах, тогда алгоритм не сработает.
2. алгоритм.
Разбить входящий формат на слова, в качестве разделителя выбрать пробел.
- Евро конверт 85х170, получим
Евро
конверт
85х170
Если разбитое слово начинается с цифры, то это ширина с высотой, разбиваем их по "х".
Подскажите красивое решение.
|
|
1
Базис
naïve
21.03.14
✎
12:39
|
Функция - параметр строка, возвращает ширину и высоту в мм, разделённую десятичной точкой (или строку типизированного формата ?).
Код можно сделать в Excel, выгрузив туда исходную табличку и проверив все реально существующие в источнике значения.
|
|
2
Asmody
21.03.14
✎
12:42
|
(.+)\s(\d+)[хx](\d+)
|
|
3
Храбрый
21.03.14
✎
12:43
|
(1) Функция параметр строка. Возвращает.
Ширину в мм, Высоту в мм, Формат.
|
|
4
Храбрый
21.03.14
✎
12:43
|
(2) Это с помощью регулярных выражений?
|
|
5
Asmody
21.03.14
✎
12:45
|
с запятыми
(^|(.+)\s)([\d,]+)[хx]([\d,]+)
|
|
6
Asmody
21.03.14
✎
12:47
|
(4) да. можно или VBScript.RegExp, или компоненту orefkov
|
|
7
Храбрый
21.03.14
✎
12:47
|
(6) Спасибо, сейчас попробую
|
|
8
Asmody
21.03.14
✎
12:48
|
до кучи
|
|
9
Храбрый
21.03.14
✎
12:50
|
(8) Это вообще отлично! Спасибо
|
|