正则表达式:[jpg|jpeg|png|bmp|gif]*是什么意思

<?php
$str='&lt;p&gt;32323223&lt;img src=&quot;/Upload/image/ueditor/20180222/1519283654325793.jpg&quot; title=&quot;1519283654325793.jpg&quot; alt=&quot;beian.jpg&quot;/&gt;&lt;/p&gt';

//这个正则表达式中“[jpg|jpeg|png|bmp|gif]*”这个部分是什么意思?
$preg='/\/Upload\/image\/ueditor\/\d*\/\d*\.[jpg|jpeg|png|bmp|gif]*/i';

preg_match($preg, $str,$data);
var_dump($data); //这里能匹配出jpg等后缀 结果如下:array(1) { [0]=> string(51) "/Upload/image/ueditor/20180222/1519283654325793.jpg" }
//但是正则中[] 中括号内的字符,应该只能匹配所包含的任意一个字符的啊,为什么能把jpg整个匹配出来?



一只萌萌小番薯
浏览 709回答 3
3回答

森林海

$preg='//Upload/image/ueditor/d/d.[jpg|jpeg|png|bmp|gif]*/i';这个是正则是以'/Upload/image/ueditor/'开始的,d*是指多次匹配数字,就是匹配一段数字,[jpg|jpeg|png|bmp|gif]*是指匹配这个后缀多次,可以是jpg,也可以是jpgjpg

红糖糍粑

这表达式有毒
打开App,查看更多内容
随时随地看视频慕课网APP