2011-03-23 2 views
0

내가 여기 정말 명백한 일을 누락 선택 사항이지만, 나는 그래서 임의의 영화의 번호를 가지고 종류 ;-)

수 정규식에 새로운 해요 년이 붙어 있거나 없을 수도있는 형식. 이제

My Movie Name 2010 
Some.Other.Super.Cool.Movie 
The~Third|Movie.2010 

, 나는 두 그룹의 이름과 다른 연도를 포함하는 하나에 날짜와 함께이 영화를 추출 할 수 있습니다 (.+)\W(\d{4}) 사용하지만, 중간 하나는 무시됩니다? 나는 사실 올해 세그먼트를 선택적으로 만드는 방법에 대해 약간 확신 할 수 없다.

이상하게도, ;-) 하나의 표현식을 사용하여 \ W를 공백으로 변환했지만 다른 대화로 이름을 반환 할 수 있습니다.

미리 감사드립니다.

+2

어떻게 영화는 4 개 개의 숫자로 끝나는이 영화를 처리 할 계획입니까? 예를 들어, "Death Race 2000"은 1975 년에 나왔습니다. "Death Race 2000 1975"를 사용하면 괜찮 았지만 "Death Race 2000"은 어떨까요? – corsiKa

답변

2

? 는 A 문자 그룹은 선택 할 것입니다 후 후 귀하의 경우 그래서 (\ d를 {4})는 (. +)에 대한 욕심 매칭을 사용하고 \ (W)가 새로운 라인 문자를 포함하고 있기 때문이다

(.+)\W(\d{4})? 

그것은 설정되어 있습니다 (적어도 그렇게 생각합니다). 후행 공백 문자를 떼어 내고 작동하지 않는다면 (. +) a를 사용하여 게으르다. 그 자체의, (. +?) - 또한이 문제에 대한 \ W가 잘못된 구분 기호 일 수 있다고 생각하십시오.

끝 부분에 $를 추가하면 숫자가 기능을 끝내야하므로 도움이 될 수 있습니다.

(.+?)\W(\d{4})?$ 
+0

실제로 전에 해보았지만 RegExbuddy는 My Movie Name 2010, Some.Other.Super.Cool.Movie 및 The Third ~ | 1 그룹의 영화를 빈 칸, 빈 칸 및 2010 년 그룹으로 표시한다고 알려줍니다. 2 ?? – PoweredByPorkers

0

? 만든다 그것을 선택

(.+?)\W?(\d{4})?$