Что нового

[RegExp] Получить имя файла из полного пути к файлу

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Например есть файл, находящийся по адресу
F:\Off_doc\11User\Read\Скопировано\111-222-333-444-555-666-777-888-999-101010-111111-121212-131313-141414.XML
Надо получить имя:
111-222-333-444-555-666-777-888-999-101010-111111-121212-131313-141414
без расширения. Учесть, что регистр - не чувствителен, т.е. XML и xml - одно и то же.
Расширение XML или xml - постоянно.
Что-то делал:
Код:
#include <array.au3>
$str = "F:\Off_doc\11User\Read\Скопировано\111-222-333-444-555-666-777-888-999-101010-111111-121212-131313-141414.XML"
$Name = StringRegExp($str, '\\(.*)(?i)\.xml', 1)
_ArrayDisplay($Name, 'StringRegExp Search')

Но полученный результат не тот, что надо.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Код:
$str = "F:\Off_doc\11User\Read\Скопировано\111-222-333-444-555-666-777-888-999-101010-111111-121212-131313-141414.XML"
MsgBox(0, "", StringRegExpReplace($str, ".+\\(.+)\..+", "\1", 1))
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Еще вариант:

Код:
$str = "F:\Off_doc\11User\Read\Скопировано\111-222-333-444-555-666-777-888-999-101010-111111-121212-131313-141414.XML"
Local $Matches = StringRegExp($str, "([^.\\]+)\.", 1)
MsgBox(0, "", $Matches[0])
 
Автор
Yuri

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Suppir
Оба варианта протестировал, работает.
Даже не знаю какой выбрать.
Спасибо.
madmasles
Успел взять. Протестировал, работает.
Жаль, что пост удален, а то хотел спросить.
Но, наверное, нельзя.
Спасибо.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 712
{CodeWarn.SModer}
 
Верх