我創建了一個正則表達式來匹配電視節目的中文和英文名稱。python正則表達式在regex101上工作,但不能在python2中工作
我的正則表達式位於https://regex101.com/r/rBJHDG,它在正則表達式上很完美,但是這個正則表達式在python2中不起作用。
有關示例,串億萬.Billions.S01E01.中英字幕.HDTVrip.1024X576.mp4
正則表達式不匹配億萬
如預期name_chs
,而不是它匹配億萬.Billions
爲name_en
。
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`