Создать регулярку

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Имеем кучу файлов такого вида:
C:\Users\user\Desktop\age+\video\video_1_xxx_6+.mpg
C:\Users\user\Desktop\age+\video\xxx_video2_xxx_7+.avi
C:\Users\user\Desktop\age+\video\video3_xxx_xxx_8+.mpg
C:\Users\user\Desktop\age+\video\video4_xxx_12+.avi
Требуется получить значения 6+, 7+, 8+, 12+ и т.д. Можно ли сделать регулярку которая за один проход будет отсекать все лишнее? У каждого файла в "хвосте" всегда присутствует "_цифра+.", но подчеркушек в имени может быть куча в том числе и цифры)))
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
Имеем кучу файлов такого вида:
C:\Users\user\Desktop\age+\video\video_1_xxx_6+.mpg
C:\Users\user\Desktop\age+\video\xxx_video2_xxx_7+.avi
C:\Users\user\Desktop\age+\video\video3_xxx_xxx_8+.mpg
C:\Users\user\Desktop\age+\video\video4_xxx_12+.avi
Требуется получить значения 6+, 7+, 8+, 12+ и т.д. Можно ли сделать регулярку которая за один проход будет отсекать все лишнее? У каждого файла в "хвосте" всегда присутствует "_цифра+.", но подчеркушек в имени может быть куча в том числе и цифры)))
Попробуйте таким образом:

61871


Регулярка:
(?<=_).[0-9+]+(?=\.(mpg|avi))
 
  • Спасибо
Реакции: gexweb

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Спасибо. Только расширение здесь не должно участвовать, в списке не только avi и mpg, плюс бывают с заглавными буквами. Прицепиться можно только к "хвосту" _6+. здесь только цифра меняется.
Попробуйте таким образом:

Посмотреть вложение 61870

Регулярка:
(?<=_).[0-9+]+(?=\.(mpg|avi))
 

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Я сделал вот так: (?<=_)[0-9].*\+ Только вот беда, если в имени встречается еще где-то "_цифра")))
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
Спасибо. Только расширение здесь не должно участвовать, в списке не только avi и mpg, плюс бывают с заглавными буквами. Прицепиться можно только к "хвосту" _6+. здесь только цифра меняется.
Регулярка:
(?<=_).[0-9+]+(?=\.)
61872
 
  • Спасибо
Реакции: doc и gexweb

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18

Вложения

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Все, это я запутался))) Вашу и свою регулярку перепутал. Ваша работает. Спасибо.
 
  • Спасибо
Реакции: Sergodjan

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
В продолжении темы. Мне теперь необходимо отсечь путь и имя файла, положив их в соответствующие переменные. Нашел вот такую классную штуку для имени файла:
Классная штука:
string fileName = project.Variables["file_path_name"].Value;
string result = Path.GetFileName(fileName);
return result;
Есть что-то похожее что-бы взять только путь?
Пример: C:\Users\user\Desktop\age+\video\video_1_xxx_6+.mpg чтобы осталось только C:\Users\user\Desktop\age+\video\
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
В продолжении темы. Мне теперь необходимо отсечь путь и имя файла, положив их в соответствующие переменные. Нашел вот такую классную штуку для имени файла:
Классная штука:
string fileName = project.Variables["file_path_name"].Value;
string result = Path.GetFileName(fileName);
return result;
Есть что-то похожее что-бы взять только путь?
Пример: C:\Users\user\Desktop\age+\video\video_1_xxx_6+.mpg чтобы осталось только C:\Users\user\Desktop\age+\video\
Можете использовать такую регулярку в кубике Обработка текста - Regex (для получения пути к файлу) и в кубике Обработка текста - Замена (для получения имени файла).

Регулярка:
.*\\
61916
 
  • Спасибо
Реакции: gexweb

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)