2012-12-13 5 views
-2

나는 CURL을 통해 PHP 변수에 저장된 웹 페이지를 확인하고 있습니다.달 찾기 preg-match

For Jack Brown - December 2012 

:

December 2012 
Name: Jack Brown 

내가 그것을 좋아하는 내가 표시 할 수 있도록 pregmatch 데이터를 찾으려면 : 웹 페이지가 같은 모양 있도록 웹 페이지 내에서 한 달에 이름과 년도 이름이됩니다 나는

\b(?:Jan(?:uary)?|Feb(?:ruary)?|...|Dec(?:ember)?) (?:19[7-9]\d|2\d{3})(?=\D|$) 

을 시도했지만 그것은

+0

당신이 시도한 것을 보여줘야합니다. 또한, 하나의 문자열에서 모든 것을 반환하는 "변수"입니까? 그렇다면 단순한 문제가 아닙니다. 다른 변수 인 경우 해당 변수를 사용하여 직접 변수를 만들 수 있습니다. – kennypu

+0

어떤 오류가 발생합니까? 구분 기호를 사용하는 것을 기억하고 있습니까? 이 정규식을 사용하는 PHP 코드를 보여주는 것도 도움이 될 수 있습니다. – Wiseguy

+0

경고 : preg_match() [function.preg-match] : 구분 기호는 영숫자 또는 백 슬래시가 아니어야합니다. –

답변

1

내가 너무 y를, 당신을 위해 조각을 오류가 온다 결과는이

Array 
(
    [0] => December 2012 Name: Jack Brown 
    [month] => December 
    [1] => December 
    [year] => 2012 
    [2] => 2012 
    [3] => Name: Jack Brown 
    [name] => Jack Brown 
    [4] => Jack Brown 
    [5] => Jack Brown 
) 

도 제가

'February 2005 Name: Bob' => 'For Bob - February 2005' 

PS로 시도 어레이를이다

'For Jack Brown - December 2012' 

것이다 여기

$str = 'December 2012 Name: Jack Brown'; 
$ptr = "/^(?P<month>:Jan(?:uary)?|Feb(?:ruary)?|Dec(?:ember)?) (?P<year>:19[7-9]\d|2\d{3}) (Name:(?P<name>(.*)))/"; 
preg_match($ptr, $str, $data); 
echo 'For '.trim($data['name']).' - '.$data['month'].' '.$data['year']; 

에서 OU를 시작할 수있다. 당신은 더 많은 달을 추가 할 수 있습니다. 단지 게으름을 더하기 위해서