PHP preg_match函数存在问题
我正在尝试使用preg_match函数从一个简单的HTML代码中获取所有图像路径,但我没有正确获得它。这是我的密码:PHP preg_match函数存在问题,php,Php,我正在尝试使用preg_match函数从一个简单的HTML代码中获取所有图像路径,但我没有正确获得它。这是我的密码: $meta='<img src=\"imgdir/4fd60181316c0cb257628528adb1c342.gif\"><br><img src=\"imgdir/e2326f439cc5f8c201b411bd66eaf9a0.gif\"><br>'; $pattern = "/^imgdir\/[a-zA-Z0-9].*
$meta='<img src=\"imgdir/4fd60181316c0cb257628528adb1c342.gif\"><br><img src=\"imgdir/e2326f439cc5f8c201b411bd66eaf9a0.gif\"><br>';
$pattern = "/^imgdir\/[a-zA-Z0-9].*(png|jpg|gif)/i";
preg_match($pattern, $meta, $result);
print_r($result);
$meta='
';
$pattern=“/^imgdir\/[a-zA-Z0-9].*(png | jpg | gif)/i”;
预匹配($pattern,$meta,$result);
打印(结果);
请帮助我获取所有图像路径。示例:imgdir/4fd60181316c0cb257628528adb1c342.gif
$pattern = "/^imgdir\/[a-zA-Z0-9].*(png|jpg|gif)/i";
这将只匹配一个字母数字字符,因为您有。和*转换。尝试交换它们。你可能还得避开这个点,我不确定
这将只匹配一个字母数字字符,因为您有。和*转换。尝试交换它们。您可能还必须避开圆点,对此我不确定。^
$pattern = "/imgdir\/[a-zA-Z0-9]*\.(png|jpg|gif)/i";
^表示字符串的开头,因此不起作用,请尝试以下操作:
$pattern = "/imgdir\/[a-zA-Z0-9]*\.(png|jpg|gif)/i";
regex有几个问题:
^
)*
量词应放在组[]
,使其与文字句点匹配/i
,因此无需同时指定a-z
和a-z
$meta='<img src=\"imgdir/4fd60181316c0cb257628528adb1c342.gif\"><br><img src=\"imgdir/e2326f439cc5f8c201b411bd66eaf9a0.gif\"><br>';
$pattern = "/imgdir\\/[a-z0-9]*\\.(png|jpg|gif)/i";
preg_match($pattern, $meta, $result);
print_r($result);
$meta='
';
$pattern=“/imgdir\\/[a-z0-9]*\\(png|jpg|gif)/i”;
预匹配($pattern,$meta,$result);
打印(结果);
正则表达式有几个问题:
^
)*
量词应放在组[]
,使其与文字句点匹配/i
,因此无需同时指定a-z
和a-z
$meta='<img src=\"imgdir/4fd60181316c0cb257628528adb1c342.gif\"><br><img src=\"imgdir/e2326f439cc5f8c201b411bd66eaf9a0.gif\"><br>';
$pattern = "/imgdir\\/[a-z0-9]*\\.(png|jpg|gif)/i";
preg_match($pattern, $meta, $result);
print_r($result);
$meta='
';
$pattern=“/imgdir\\/[a-z0-9]*\\(png|jpg|gif)/i”;
预匹配($pattern,$meta,$result);
打印(结果);
你会想逃离这个世界<代码>\\.以便它只匹配一个文字句点。您还需要避免反斜杠,因为您使用的是双引号。您将希望避开<代码>\\.以便它只匹配一个文字句点。由于使用双引号,您还需要避开反斜杠。