1С: Поиск слова обрамлённого символами
В продолжение этого. Пользователи оказались немножко более изобретательными, чем предполагал программист, и начали в комментариях писать и что-то типа:
1 |
Контролер процесса {Коновалова Е.П.} очень хочет получить премию в размере (20 рублей)! |
Соответственно описанная в предыдущей статье функция начала определять только «20 рублей». Т.е. алгоритм не предусматривал наличие нескольких вложений скобок внутри строки. Поправим это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Функция СложитьМассивы(массив1,массив2) экспорт для каждого эл из массив2 цикл массив1.добавить(эл); конеццикла; возврат массив1; конецфункции Функция ВычленитьМассивФИОИзСкобок(стр,стрн,стрк) экспорт МассивФИО=Новый Массив(); // сначала вычленяем из () массивКонцовСкобки=СтрРазделить(стр,стрк); для каждого эл из массивКонцовСкобки цикл если СтрНайти(эл,стрн)>0 тогда МассивНачалСкобки=СтрРазделить(эл,стрн); если СокрЛП(МассивНачалСкобки[1])<>"" тогда МассивФИО.Добавить(СокрЛП(МассивНачалСкобки[1])); конецесли; конецесли; конеццикла; возврат МассивФИО; конецфункции контролеры=ВычленитьМассивФИОИзСкобок(body.message,"(",")"); контролеры=СложитьМассивы(контролеры,ВычленитьМассивФИОИзСкобок(body.message,"{","}")); контролеры=СложитьМассивы(контролеры,ВычленитьМассивФИОИзСкобок(body.message,"<",">")); контролеры=СложитьМассивы(контролеры,ВычленитьМассивФИОИзСкобок(body.message,"[","]")); |
В результате в переменную попадает массив слов заключенных в скобки