我試圖提取用戶名正則表達式//獲取價值:從<a>鏈接
preg_match_all("/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>", $file_content, $matches);
從以下
<a href="/Users/stackoverflow">stackoverflow</a>
但它不顯示任何
你能告訴我:(那裏有什麼不對?
我試圖提取用戶名正則表達式//獲取價值:從<a>鏈接
preg_match_all("/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>", $file_content, $matches);
從以下
<a href="/Users/stackoverflow">stackoverflow</a>
但它不顯示任何
你能告訴我:(那裏有什麼不對?
你有一個不必要的\/
包含在你的正則表達式中,你不需要轉義<
或>
或=
。因此,改變你的正則表達式如下圖所示,
<a href=\"/Users\/(\D+?)\">(.*)<\/a>
"/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>"
^
|
談到(\D+)
到非捕獲組將只剩下一個組。
<a href=\"/Users\/(?:\D+?)\">(.*)<\/a>
非常感謝您的幫助和有用的鏈接:)
這裏是我的最終代碼:
$matches = array();
preg_match_all("<a href=\"/Users\/(\D+?)\">", $file_content, $matches);
foreach($matches[1] as $child) {
echo $child . "\n";
}
你在你的匹配字符串有一個正斜槓這是不存在在數據你要匹配:
preg_match_all("/\<a href\=\"/Users\/(\D+)\/\"\>(.*)\<\/a\>", $file_content, $matches);
^
這是期待:
<a href="/Users/stackoverflow/">stackoverflow</a>
即只是href屬性的結束引號之前另一斜線,如計算器/「>
所以它永遠不會匹配。
天哪!我沒看見它!謝謝 :))) – 2014-11-01 01:29:01
謝謝,我現在給它一個 – 2014-11-01 01:06:18
當然,讓我知道它是否有效。 – 2014-11-01 01:06:54