Страница 1 из 2
Помогите с регулярными выражениями
Добавлено: 11 сен 2011 16:57
tkachenkoser
Хочу создать несколько дочерних характеристик, но пока все печально.
Первое. Массив значений
1000 ВА / 500 ВТ
1000 ВА / 600 ВТ
1200 ВА / 720 ВТ
420 ВА / 260 ВТ
и тд
на отдельные хар-ки: Мощность в ВА и Мощность в ВТ
Второе
Массив
1280x1024
1280x1024, 1600x1200 (интерполированное)
1280x720
1600x1200, 2560x1920 (интерполированное)
1600x1200, 2560x2048 (интерполированное)
1920x1080
640x480
640x480, 1024x768 (интерполированное)
разделить на разрешение фактическое и интерполяционное.
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 09:13
support
Здравствуйте, в чем именно заключается сложность?
Какие выражения (формулы) Вы уже составили?
Про составления регулярных выражений можно прочесть
здесь.
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 11:12
tkachenkoser
Если самый просто вариант, то ([0-9]{3}+)
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 11:24
support
попробуйте:
([0-9]{3} [а-я]{2})
для:
420 ВА
и:
([0-9]{4} [а-я]{2})
для:
1000 ВА
1200 ВА
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 11:48
tkachenkoser
но это же должно быть на автомате, должна быть формула обработающий как 3 значные числа, так и 4х значные.
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 11:49
support
Это должно быть две формулы. Так как условия разные.
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 12:08
tkachenkoser
НО задействовать же 2 формулы там нельзя, только одну.
ПОчему не воспользоваться
+ - Соответствует предыдущему символу или части выражения, повторяющимся один или более раз. Аналогично параметру {1,}.
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 12:41
support
Попробуйте составить формулу Для Мощность ВА:
ЕСЛИ(СОДЕРЖИТ('ЧТО ИСКАТЬ', {ЗначениеХарактеристики})>0, 'НА ЧТО ЗАМЕНЯТЬ', {ЗначениеХарактеристики})
ЧТО ИСКАТЬ-это текст или часть текста которые нужно найти для дальнейшего преобразования.
НА ЧТО ЗАМЕНЯТЬ-это текст в который превратится то что было найдено.
Например:
ЕСЛИ(СОДЕРЖИТ('1000 ВА', {ЗначениеХарактеристики})>0, '1000 ВА', {ЗначениеХарактеристики})
Нужно создать формулу вида:
ЕСЛИ(СОДЕРЖИТ('1000 ВА', {ЗначениеХарактеристики})>0, '1000 ВА', ЕСЛИ(СОДЕРЖИТ('1200 ВА', {ЗначениеХарактеристики})>0, '1200 ВА', ЕСЛИ(СОДЕРЖИТ('420 ВА', {ЗначениеХарактеристики})>0, '420 ВА', ЕСЛИ(СОДЕРЖИТ('8888 ВА', {ЗначениеХарактеристики})>0, '8888 ВА',{ЗначениеХарактеристики}))))
Таким образом значения отделяться.
Re: Помогите с регулярными выражениями
Добавлено: 12 сен 2011 13:03
tkachenkoser
ну это метод кривых программистов, у меня этих значений более 15.
Хорошо, а как лучше поступить с
Массив
1280x1024
1280x1024, 1600x1200 (интерполированное)
1280x720
1600x1200, 2560x1920 (интерполированное)
1600x1200, 2560x2048 (интерполированное)
1920x1080
640x480
640x480, 1024x768 (интерполированное)
разделить на разрешение фактическое и интерполяционное.