TV 에피소드 (예 : show.name.s01e02.avi)의 파일 이름을 구문 분석하고 www.thetvdb.com API에서 에피소드 이름을 가져 와서 자동으로 이름을 바꾸는 스크립트가 있습니다. (쇼 이름 - [01x02] .avi)Regex 및 유니 코드
스크립트는 잘 동작합니다. 유니 코드 쇼 이름 (내가 생각한 적이없는 파일)을 사용하기 전까지는 스크립트를 사용할 수 있습니다. 영어, 그래서 대부분 꽤-많은 [a-zA-Z0-9'\-]
내의 모든 가을)
어떻게 악센트 부호가있는 문자 및 좋아하는 일치하는 정규 표현식을 허용 할 수 있습니까? 현재 정규 표현식의 구성 섹션은 다음과 같습니다.
config['valid_filename_chars'] = """[email protected]£$%^&*()_+=-[]{}"'.,<>`~? """
config['valid_filename_chars_regex'] = re.escape(config['valid_filename_chars'])
config['name_parse'] = [
# foo_[s01]_[e01]
re.compile('''^([%s]+?)[ \._\-]\[[Ss]([0-9]+?)\]_\[[Ee]([0-9]+?)\]?[^\\/]*$'''% (config['valid_filename_chars_regex'])),
# foo.1x09*
re.compile('''^([%s]+?)[ \._\-]\[?([0-9]+)x([0-9]+)[^\\/]*$''' % (config['valid_filename_chars_regex'])),
# foo.s01.e01, foo.s01_e01
re.compile('''^([%s]+?)[ \._\-][Ss]([0-9]+)[\.\- ]?[Ee]([0-9]+)[^\\/]*$''' % (config['valid_filename_chars_regex'])),
# foo.103*
re.compile('''^([%s]+)[ \._\-]([0-9]{1})([0-9]{2})[\._ -][^\\/]*$''' % (config['valid_filename_chars_regex'])),
# foo.0103*
re.compile('''^([%s]+)[ \._\-]([0-9]{2})([0-9]{2,3})[\._ -][^\\/]*$''' % (config['valid_filename_chars_regex'])),
]
'\ P는 {문자는}'모든 정규식 엔진에서 지원되지 않으며, 파이썬의 경우, 그것은 기본're' 엔진에서 지원되지 않는. 'regex' 패키지에서만 지원됩니다. – nhahtdh