0
<?php
$string = "http://example.com/file/D1 http://example.com/file/D2
http://example.com/file/D3";
preg_match_all('/(https?\:\/\/)?(www\.)?example\.com\/file\/(\w+)/i', $string, $matches);  
foreach($matches[3] as $value)
{  
print $value;  
}
?>

我想预匹配第三个链接并获得“D3”。
我不希望它与其他两个链接匹配。这就是为什么它应该检查链接的开头或结尾是否有空格。
我知道要与空格匹配,表达式是\s. 我试过了,但不知何故我不明白。:(

4

1 回答 1

2

您可以$像这样添加匹配字符串的结尾,它只会返回最后一个。

preg_match_all('/(https?\:\/\/)?(www\.)?example\.com\/file\/(\w+)$/i', $string, $matches);  
于 2012-06-10T15:38:27.227 回答