bash expr VS python re.
Был у меня скрипт на питоне, который в числе прочего искал инфу о фильме на IMDB/Кинопоиск.И я его случайно грохнул.)Теперь пытаюсь восстановить - ничего не получается!(но как же я его раньше написал?!)
Суть задачи - преобразовать название файла из например такого
Nightmare.Detective.2006.TV1000.Rus.Jap.avi
В качестве образца использовал когда-то это
#!/bin/bash
MOVIE_SEPCHAR='+'
MOVIE=$1
MOVIE=${MOVIE##*/} # remove path (/home/user/../)
MOVIE=${MOVIE%.*} # remove type (.avi, .mkv)
MOVIE=${MOVIE// /.} # replace space (" ") to dot (".")
MOVIE=`echo $MOVIE | tr '[:upper:]' '[:lower:]'` # to lowercase
MOVIE=`echo $MOVIE | tr '\.\-\_' $MOVIE_SEPCHAR` # replace .-_ to separate character
MOVIE=`expr "$MOVIE" : '\([^\[\(]*\)'` # remove brackets
if [ "`expr "$MOVIE" : '\(.*\)[0-9][0-9][0-9][0-9]'`" != "" ]; then
MOVIE=`expr "$MOVIE" : '\(.*\)[0-9][0-9][0-9][0-9]'` # remove year
fi
echo "$MOVIE"
#!/usr/bin/python
# coding: utf-8
from os import path
from sys import argv
from re import search
video = argv[1]
name = path.splitext(path.basename(video))[0]
for regex in ('\(.*', '\[.*', '[0-9][0-9][0-9][0-9]'):
match = search(regex, name)
if match:
name = name.replace(match.group(),'')
for rep in ('.', '_', ' '):
name = name.rstrip(rep)
name = name.replace(rep, '+')
print name
Вобщем помогите восстановить скрипт и обьясните в чем отличия в регулярках в re и expr (потому что тупо взятые из примера с expr в re не работают)