저는 TV 프로그램의 중국어 및 영어 이름과 일치하는 정규식을 만듭니다.python regex는 regex101에서 작동하지만 python2에서는 작동하지 않습니다.
내 정규식은 https://regex101.com/r/rBJHDG에 있으며 정규식에서 완벽하게 작동하지만 정규식은 python2에서 작동하지 않습니다. 예를 들어
, 문자열 亿万.Billions.S01E01.中英字幕.HDTVrip.1024X576.mp4
정규식 대신이 name_en
로 亿万.Billions
일치 기대에 name_chs
로 亿万
과 일치하지 않습니다.
In [68]: r = '^(?P<name_chs>(?:[\\u3007\\u4e00-\\u9fff\\u3400-\\u4dbf\\uf900-\\ufaff]+)(?=\\.))?(?P<name_en>\\S+).S(?P<season>\\d{2})E(?P<episode>\\d{2})'
In [69]: re.match(r, u'亿万.Billions.S01E01.中英字幕.HDTVrip.1024X576.mp4').grou
...: pdict()
Out[69]:
{'episode': u'01',
'name_chs': None,
'name_en': u'\u4ebf\u4e07.Billions',
'season': u'01'}
두 번째 질문 :
방법name_en
에
.
을 제거 할 수있는 중국 이름과 영어 이름 사이에있다. 그것은 문제처럼 보인다
# 亿万.Billions.S01E01.中英字幕.HDTVrip.1024X576.mp4
Full match 0-18 `亿万.Billions.S01E01`
Group `name_chs` 0-2 `亿万`
Group `name_en` 2-11 `.Billions` <---- This DOT!
Group `season` 13-15 `01`
Group `episode` 16-18 `01`