2012-02-01 2 views
1
내가 토런트 이름에서 특정 문자열을 얻으려면

와 문자열에서 특정 텍스트를 인쇄하지만 난 단지 그것에서이납니다 :는 preg_match를

array 
    0 => string 'e' (length=1) 

내가 잘못 무슨 짓을? 이것은 preg_match 내가 사용하는 것입니다 : 사전에

preg_match('/[S(0-9)E(0-9)]/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches);

감사합니다.

답변

0

대괄호를 제거하고 숫자 주위에 넣은 다음 + (1 개 이상 의미)을 추가하십시오. 당신은 전체 S ## E ## 문자열을 얻을이 방법 플러스 별도로 번호 :

preg_match('/S([0-9]+)E([0-9]+)/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches); 
print_r($matches); 
/* output: 
Array 
(
    [0] => S04E12 
    [1] => 04 
    [2] => 12 
) 
*/ 

또한 \d

+0

감사합니다. 이것은 매력처럼 작동했습니다. 나는 정규 표현식을 좀 익숙하게 사용합니다. – Erik

0

[0-9]을 대체 할 수는 내가 사용하는 것이 좋습니다 것입니다 :

preg_match('/S[0-9]{1,2}E[0-9]{1,2}/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches); 

그것은 도착 out :

array(1) { [0]=> string(6) "S04E12" } 
0

다음 정규 표현식은 적절한 문자열.

/* Pattern: /\d{2}E\d{2}/ */ 
preg_match_all('/\d{2}E \d{2}/', '{{your data}}', $arr, PREG_PATTERN_ORDER); 
/*Result*/ 
Array 
(
    [0] => Array 
     (
      [0] => 04E12 
     ) 

) 
관련 문제