Php [IMG]标记之间的Preg匹配内容

Php [IMG]标记之间的Preg匹配内容,php,regex,preg-match-all,Php,Regex,Preg Match All,我正在编写一个脚本来检索文章中的第一个图像链接 $content=[center]你好,世界,这是我的房子:[img]myhouse.png[/img]blah blah blah[/center]这是另一个房子[img]anotherhouse.png[/img],blah blah blah 我只想返回“myhouse.png”并将其保存到一个变量中 另外,img应该不区分大小写,这意味着它可以处理[img]文本这里[/img]或[img]文本这里[/img]这将返回第一个图像: $cont

我正在编写一个脚本来检索文章中的第一个图像链接

$content=[center]你好,世界,这是我的房子:[img]myhouse.png[/img]blah blah blah[/center]这是另一个房子[img]anotherhouse.png[/img],blah blah blah

我只想返回“myhouse.png”并将其保存到一个变量中
另外,
img
应该不区分大小写,这意味着它可以处理
[img]文本这里[/img]
[img]文本这里[/img]
这将返回第一个图像:

$content = '[center]Hello World, this is my house: [img]myhouse.png[/img] blah blah blah blah [/center] This is another house [img]anotherhouse.png[/img] , blah blah blah';

preg_match('#\[img\]\s*(?P<png>.*?)\s*\[/img\]#i', $content, $m);
echo $m['png']; // myhouse.png
$content='[center]你好,世界,这是我的房子:[img]myhouse.png[/img]blah blah blah[/center]这是另一所房子[img]anotherhouse.png[/img],blah blah blah';
预匹配('\[img\]\s*(?P.*?\s*\[/img\]\i',$content,$m);
echo$m['png'];//myhouse.png
这里有一个正则表达式:

$content = '[center]Hello World, this is my house: [img]myhouse.png[/img] blah blah blah blah [/center] This is another house [img]anotherhouse.png[/img] , blah blah blah';

$pattern = '/\[img\](.*)\[\/img\]/U'; // <-- the U means ungreedy

preg_match_all($pattern, $content, $matches);
var_dump($matches[1]);
$content='[center]你好,世界,这是我的房子:[img]myhouse.png[/img]blah blah blah[/center]这是另一所房子[img]anotherhouse.png[/img],blah blah blah';

$pattern='/\[img\](.*)\[\/img\]/U';//添加i修改器!(+1):)在
U
之后,它将使其不区分大小写。它还将匹配大写标记,如:
[IMG]
。如果需要,您可以这样做。png只是一个示例,它应该适用于所有图像类型,很抱歉没有指定that@user2263996PNG只是一个“名称”,即使使用BMP、JPG或C++ LOL:它也会工作,谢谢,抱歉我不知道ReGEX是如何工作的,我应该用哪一个,这个还是上面的一个^?@user2263996他们基本上做了相同的事情,如果你对两个答案都投赞成票并接受他的答案,我会很满意:谢谢你的帮助:),我还不能+1,但我接受了这个答案