2014-06-22 166 views
0

我有一個關於PHP中的pre_match的問題。PHP preg_match問題

這是代碼:

function get_ayalon($input) { 
$escaped_input = rawurlencode($input); // RFC 3986! 
$ayalon_result = get_URL("http://arabdictionary.huji.ac.il/Matrix.Arabdictionary/Search.aspx?RadioArabic=true&RadioRoot=false&WordString=$escaped_input&NX=903"); 
$array_of_results_ayalon = preg_match($ayalon_result, "/^/g"); 
echo "<pre>"; 
print_r($array_of_results_ayalon); 
echo "</pre>"; 
die("done!"); 
} 
  • $ayalon_result調用返回頁面與捲曲的含量的函數的變量。
  • 在返回的結果($ayalon_result)中有一個^後面跟着幾位數字,在返回頁面的底部還有另一個^。我做preg_match的原因是因爲我想讓79156^位於返回頁面的頂部,例如,並且返回內容底部的^消失。

問題是返回的內容只是0,而不是包含內容的數組。我想這是關於/^/g這是不對的,但我不知道如何解決它。

請幫助我,告訴我任何你不明白的東西

謝謝!

+0

我認爲你必須逃避「/」。你應該嘗試你的正則表達式http://regex101.com/ 另外,你能否進一步解釋你的正則表達式?它應該匹配什麼?例? – Sirac

+0

模式必須是第一個參數 – Deadooshka

+0

您可以更清楚地知道輸出是什麼樣子以及您嘗試提取/刪除哪個部分? –

回答

1

PHP preg_match將正則表達式(正則表達式)作爲第一個參數,第二個搜索模式的變量以及第三個搜索匹配的數組。 「^」是一個表示字符串開始的正則表達式,因此要搜索字符Caret,並用反斜槓進行轉義。圍繞模式放置括號以獲得所有匹配。所以我認爲這是你所尋求的:

preg_match("/(\^\d+)/", $ayalon_result, $array_of_results_ayalon); 

交換你有這個,看看你得到什麼。

+0

謝謝,但我用另一種方式完成了它(substr) – Hagaymosko