PHP:在

PHP:在,php,string,special-characters,Php,String,Special Characters,我有以下字符串: $string = '"http://i.stack.imgur.com/?oapQok.png" blabla "http://i.stack.imgur.com/p9*xp.png" blabla "http://i.stack.imgur.com/papsyewxp.jpg"' 我现在想得到以下信息: array(3) { [0] => string("?oapQok.png") [1] => string("p9*xp.png") [2] =&

我有以下字符串:

$string = '"http://i.stack.imgur.com/?oapQok.png" blabla "http://i.stack.imgur.com/p9*xp.png" blabla "http://i.stack.imgur.com/papsyewxp.jpg"'
我现在想得到以下信息:

array(3) {
  [0] => string("?oapQok.png")
  [1] => string("p9*xp.png")
  [2] => string("papsyewxp.jpg")
}
问题:长度不同,是否有“奇怪”-->*$?里面的字符等等

你能解释一下如何修复它吗?

试试:

另请参阅上的php文档,以获取捕获。

尝试:

$string = '"http://i.stack.imgur.com/?oapQok.png" blabla "http://i.stack.imgur.com/p9*xp.png" blabla "http://i.stack.imgur.com/papsyewxp.jpg"';

$matches = array();
preg_match_all('/"http:\/\/i.imgur.com\/([^"]+)"/', $string, $matches);

var_dump($matches[1]);

另请参阅上的php文档以提取捕获。

是否所有URL都是双引号?是否所有URL都是双引号?这将有一些假阳性匹配--它将匹配“”,即没有foo.png。@Paul:谢谢。更新为在斜杠后至少匹配一个字符。这将有一些假阳性匹配——它将匹配“”,即没有foo.png。@Paul:谢谢。已更新以匹配斜杠后的至少一个字符。
$string = '"http://i.stack.imgur.com/?oapQok.png" blabla "http://i.stack.imgur.com/p9*xp.png" blabla "http://i.stack.imgur.com/papsyewxp.jpg"';

$matches = array();
preg_match_all('/"http:\/\/i.imgur.com\/([^"]+)"/', $string, $matches);

var_dump($matches[1]);