2014-09-08 1 views
-2

Мне нужно заменить несколько разных терминов в квадратных скобках из имен файлов с помощью regex в File Renamer. Я могу делать их индивидуально, но это очень много времени, есть ли способ поиска и замены из списка?Можно ли найти и заменить список в регулярном выражении?

Например, мне нужно, чтобы удалить все имена расширений в квадратных скобках из имен файлов, как это:

filename[txt].txt  
File_Name(Blah)[pdf].pdf 
Eman Elif - [abcdef 00] - whaterver [doc].doc 

Спасибо.

Редактировать: Извинения, я новичок здесь и не знаю, как это происходит. Мой пример должен быть более разнообразным, не все в формате: [ext] .ext. Я более искал способ, чтобы соответствовать термины из списка и заменить ничего (так что термин удаляется) Что-то вроде:

FIND: [PDF], [TXT] [док], [V3. 0],

ЗАМЕНА:

, но, конечно, не работает. Есть ли способ сделать это? Благодарю.

+0

Каков ваш ожидаемый результат? –

+0

«Возможно ли найти и заменить из списка в регулярном выражении?» «Да, это так. Само слово «невозможно» говорит «Я возможно»! – Unihedron

+0

Это может быть сделано просто с некоторыми умными обратными ссылками .. – user2864740

ответ

0

Вы можете достичь этого, используя следующее регулярное выражение:

\s?\[(txt|pdf|doc|V3\.0)\]\s? 

и сохранить строку пустой заменить. Вы можете добавить столько строк, сколько хотите, в круглую скобку (), разделяя каждую строку символом трубы |. Не забудьте избежать специальных символов, таких как . с \.

например: V3\.0

Example on regex101.

+0

Отлично! Это подход. Кстати, этот вопрос пустяк. – Unihedron

+0

Это отлично подходит для приведенных выше примеров, спасибо, но они были всего лишь примером того, что мне нужно удалить, но не все в формате: [ext] .ext. Я больше искал способ сопоставить любой термин из списка и заменить его ничем. – Zarnia

+0

@ Zarnia: Я обновил свой ответ (и пример по ссылке) на основе вашего обновленного вопроса. –

0

Вы можете использовать захват группу и обратную ссылку, чтобы соответствовать этим:

s/\[([^]]*)\]\.\1$/.$1/ 

Это соответствует слову в квадратных скобках, за которыми следует точка и это слово, и заменяет все это с точкой с последующим словом.

+0

Я рекомендую изменить '[^]] *' на '[^]] +'. – Unihedron

Смежные вопросы