2012-12-13 90 views
-2

我正在通過CURL檢查存儲在PHP變量中的網頁。在該網頁將是一個月份名稱和年份,也是一個名稱,這樣的網頁看起來是這樣的:查找月份preg-match

December 2012 
Name: Jack Brown 

我想pregmatch找到數據,所以我可以顯示它想:

For Jack Brown - December 2012 

我曾嘗試

\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

我做一個片段給你,所以ÿ OU可以從這裏開始

$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']; 

結果將是

'For Jack Brown - December 2012' 

這是一個數組

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。你可以添加更多的月份,我只是懶惰添加,歡呼