有人可以告訴我爲什麼這個正則表達式不能在PHP中工作,但模式在C#中工作?php正則表達式不工作,在C中工作#
我試圖複製一個工作功能,我在C#中,我試圖用我以前有相同的正則表達式,它不返回任何結果,我檢查了谷歌和理解PHP的正則表達式的用途一組不同的分隔符,但現在我不知道爲什麼它不起作用。
PHP:
$results_q = "#(?m)/watch-.*?title=#";
preg_match($results_q, $html, $results, PREG_PATTERN_ORDER);
工作在C#:
var results = Regex.Matches(test, "(?m)/watch-.*?title=");
我怎樣才能讓它在PHP的工作嗎?這種模式有什麼不同?
正則表達式主題:
<a href="/watch-2742524-Thor-The-Dark-World" title="Watch Thor The Dark World (2013)">
輸出應該是:/watch-2742524-Thor-The-Dark-World
這是我的PHP函數和它目前的工作,但只有一個返回結果,我想到了很多!因爲頁面上有幾個項目符合我的模式。
function parseURL($url, $page, $featured = false) {
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n"
)
);
$context = stream_context_create($opts);
$html = file_get_contents($url, false, $context);
$results_q = "/(?m)watch-.*?title=/";
preg_match($results_q, $html, $results);
echo var_dump($results);
}
請張貼您所期望的模式來匹配什麼,以及輸入你測試過的字符串不匹配。 –
當然看到編輯,我測試過「#(?m)// watch - 。*?title =#」和「/(?m)/watch-.*?title=/」,沒有運氣。 – Dean