Показать сообщение отдельно
Непрочитано 15.03.2016, 00:13   #6
Аватар для Aristocrat
Мастер

Автор темы (Топик Стартер) Re: Парсер строк с тегами

Вообщем я наверное изобретаю велосипед))

Суть задачи в исходном виде.
Есть строка с эффектом скила в PTS-формате.

Мне нужно как-то выдернуть содержимое эффекта в виде массива строк.
Пример:
ВХОД:
Код:
{{p_physical_defence;{all};-10;per};{i_dispel_by_slot_probability;pd_up;100};{i_dispel_by_slot_probability;improve_pa_pd_up;100};{p_block_buff_slot;{improve_pa_pd_up;pd_up}}}
ВЫХОД:
Код:
{p_physical_defence;{all};-10;per};
{i_dispel_by_slot_probability;pd_up;100};
{i_dispel_by_slot_probability;improve_pa_pd_up;100};
{p_block_buff_slot;{improve_pa_pd_up;pd_up}}
Казалось бы, бери да сплить по "};{", но фигушки.. Есть к примеру строки:
Код:
{{p_ability_change;{{pdefend;50};{pattack;50};{mdefend;25};{mattack;25};{mp;10};{hp;10};{criticalprob;20};{pattackspeed;10};{musespeed;3}}}}
где при таком подходе, он нарежет нам и содержимое самого эффекта..

Также есть строки такого вида:
Код:
{{p_physical_defence;{all};-10;per};{i_dispel_by_slot_probability;pd_up;100};{i_dispel_by_slot_probability;improve_pa_pd_up;100};{p_block_buff_slot;{improve_pa_pd_up;pd_up}}}
Которые исключают использование символов "{" и "}" как тегов... по причине, что снова нарезается содержимое эффекта.
Цитата:
00:43:07.926 ------- {{i_m_attack;65};{p_speed;{all};-20;per}} --------
00:43:07.928 ;
00:43:07.928 i_m_attack;65
00:43:07.929 p_speed;;-20;per
00:43:07.929 all
Может есть какие-то варианты, как можно считать содержимое эффекта целиком?
Aristocrat вне форума Ответить с цитированием