1С8 пример. Регулярные выражения, метод Execute(). Имя файла из полного имени файла.

Задача - вычислить имя файла из строки, содержащей полное имя файла. Например: "\\Server1\Pic\Данные для сайта\Изображения\ЧПУ_Н0313\Красный\fileName.png" или C:\Users\user\AppData\Local\Temp\fileName.jpg

Используем регулярные выражения - COMОбъект("VBScript.RegExp").

Переменную мRegExp типа COMОбъект удобно сделать с областью видимости "модуль" чтобы при вызове каждый раз не инициализировать ее.

Отладка регулярного выражения:

Регулярные выражения, метод Execute(). Получить  имя файла из полного имени файла.

//Пример:
// строкаПолноеИмяФайла:
// \\Server1\Pic\Данные\Изображения\ЧПУ_Н0313\Красный\0313_2_1_47Н_285986.png 
// C:\Users\user\AppData\Local\Temp\SS40010371_05_22085_600x800.jpg 
// C:\ЙЙ ЫЫw4  0010371_05_2205_600x800.jpg 
// 4 001037 1_05_220985_600x800.jpg 
Функция ПолучитьИмяФайла(строкаПолноеИмяФайла)

    Если  ПустаяСтрока((СокрЛП(строкаПолноеИмяФайла))) Тогда                
        Возврат "";
    КонецЕсли;

    Если мRegExp = Неопределено Тогда        
		
	// создаем объект для работы с регулярными выражениями
        RegExp = Новый COMОбъект("VBScript.RegExp"); 

        // истина — текст многострочный, ложь — одна строка
        RegExp.MultiLine = ложь;  

        // истина — поиск по всей строке, ложь — до первого совпадения
        RegExp.Global = Истина; 

        // истина — игнорировать регистр строки при поиске
        RegExp.IgnoreCase = Истина; 

	// Искать конец строки не содержащий символов: \ / : * ? " . 
        Шаблон  = "[^\\/:*?""<>]+$"; //шаблон проверки ([^\\/:*?"<>]+$)

        RegExp.Pattern = Шаблон; // шаблон (регулярное выражение)

    КонецЕсли; 

	// получим результаты выполнения регулярного выражения
	comResults = RegExp.Execute(строкаПолноеИмяФайла);
	
	// для нашего шаблона интересен результат в 0 ()
	строкаИмяФайла = comResults.Item(0).Value;
    Возврат строкаИмяФайла;

КонецФункции  




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга