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;  
}
?>

3つ目のリンクをプレグマッチして「D3」をゲットしたいです。
他の 2 つのリンクと一致させたくありません。これが、リンクの先頭または末尾に空白があるかどうかを確認する必要がある理由です。
空白と一致させるには式が\s. やってみましたが、なんとなくわかりません。:(

4

1 に答える 1

2

このように文字列の末尾に一致するように を追加する$と、最後の文字列のみが返されます。

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