2009-05-28 2 views
3

상상 경우 당신은 다음과 같은 문자열 :정규식 파일 이름에서 영화 이름을 추출하기위한

"위대한 영화 (1999) DVDRip.avi"

내가 문자열 "위대한 영화"에서 압축을 찾고 있어요 이 정규식을 통해,하지만이 올바른 정규식을 얻으려고 고군분투.

다양한 길이의 파일 이름도이 구문을 사용합니다.

감사합니다.

^(.+)\s\(.+ 
+0

나는이 오래 전에 요청되었다는 것을 알고 있지만 최근에이 작업을 위해 python [library] (https://github.com/divijbindlish/parse-torrent-name)을 개발했습니다. 도움이 될 것입니다. –

답변

4

이 구문은 .NET 정규식 파서 디자인되어 (다른 정규식 엔진에서 다를 수 있습니다) :

^(?<MovieName>.+)\((?<Year>\d+)\)(?<AdditionalText>[^\.]*)\.(?<Extension>[^\.]*)$ 

사용할 수있는 브래킷을 가정

+0

이것은 나를 위해 완벽하다. 너는 나에게 많은 일을 구했어! 감사! –

1

는 공간 앞에는 이 구문을 사용하여 원하는 데이터를 가져올 수 있습니다.

string line = "Movie Text"; 
Match match = Regex.Match(line); 
match.Groups["MovieName"].Value; 

텍스트 및 확장 기능을 제공합니다.

0

(가장자리) 벤의 옵션에 비해
^([^(]+) 

빠른

파이썬 첫 브래킷까지 모든 것을 일치 :

>>> import re 
>>> re.compile("^([^(]+)").match("A Great Movie (1999) DVDRip.avi").groups() 
('A Great Movie ',) 
관련 문제