我是Regex的新手并且非常困惑,我已经阅读了其他问题,但仍然不明白该怎么做。
所以我有这个字符串:
$string = 'hello the image is <img src="wroot/1/15/5.jpg" alt="Image">';
我正试图让Regex提取图像标签,我该怎么做呢?
到目前为止我所做的事情(使用preg_match)是一团糟,所以我想我会在这里找到答案。
非常感谢。
此致
马特
编辑:
根据要求,这就是我想出来的。
$string = 'hello the image is <img src="wroot/1/15/5.jpg" alt="Image">';
$pattern = '/<img/src="^[a-zA-Z0-9_]{24,}$"/';
preg_match($pattern, $string, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
答案 0 :(得分:2)
对于这个简单的例子,你可以轻松地做.. ..
preg_match('/src="([^"]*)"/', $string, $match);
echo $match[1]; // => "wroot/1/15/5.jpg"
如果您想要整个标签..
preg_match('/<[^>]*>/', $string, $match);
echo $match[0];
输出
<img src="wroot/1/15/5.jpg" alt="Image">
答案 1 :(得分:1)
您可以使用此正则表达式匹配html标记,如下所示:
</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)/?>
输出:
<img src="wroot/1/15/5.jpg" alt="Image">
请参阅此regexpal链接:http://tinyurl.com/k3qqbhr
答案 2 :(得分:0)
$string = 'hello the image is <img src="wroot/1/15/5.jpg" alt="Image">';
$regex = '~<img[^>]+>~';
if(preg_match($regex,$string,$m)) echo htmlentities($m[0]);
输出: <img src="wroot/1/15/5.jpg" alt="Image">