0
Prilepsky
22.12.11
✎
02:35
|
Функция РазложитьСтрокуВМассив(Строка, Разделитель = ";") Экспорт
RegExp = Новый COMОбъект("VBScript.RegExp"); // создаем объект для работы с регулярными выражениями
//Параметры:
RegExp.MultiLine = Ложь; // истина — текст многострочный, ложь — одна строка
RegExp.Global = Истина; // истина — поиск по всей строке, ложь — до первого совпадения
RegExp.IgnoreCase = Ложь; // истина — игнорировать регистр строки при поиске
//Разбор строки вида 1,СЛОВО,(1+2); Маска для разделителя ',' [^\,]*"
RegExp.Pattern = "[^\" + Разделитель + "]+";
Matches = RegExp.Execute (Строка);
Массив = Новый Массив;
Для Сч = 0 По Matches.Count - 1 Цикл
Массив.Добавить(Matches.Item(Сч).Value);
КонецЦикла;
RegExp = Неопределено;
Возврат Массив;
КонецФункции
Есть строка из 16 параметров, некоторые из них пустые.
Как сделать, чтобы эта функция учитывала пустые параметры? Возможно ли это вообще?
А то стандартная процедура "РазложитьСтрокуВМассив" долго выполняет разложение.
|
|
2
Amiralnar
22.12.11
✎
06:37
|
Я в RegExp новичок, но могу предложить следующее:
...
RegExp.Pattern = ",,";
Matches = RegExp.Replace(Строка, ", ,");
RegExp.Pattern = "[^\" + Разделитель + "]+";
Matches = RegExp.Execute (Строка);
...
|
|
3
Amiralnar
22.12.11
✎
06:40
|
Для случая нечетных запятых, ",,,", реплейс повторить еще раз.
|
|