问题如图
求解
PHP可以使用正则表达式匹配Markdown图片格式,核心模式为:
$pattern = '/!\[(.*?)\]\((.*?)\)/';
preg_match_all($pattern, $content, $matches);
示例解析:
$markdown = '


';
preg_match_all('/!\[(.*?)\]\((.*?)(?:\s+"(.*?)")?\)/', $markdown, $matches, PREG_SET_ORDER);
/*
结果:
array(2) {
[0]=> array(3) {
[0]=> ""
[1]=> "logo"
[2]=> "https://example.com/logo.png"
}
[1]=> array(4) {
[0]=> ""
[1]=> "avatar"
[2]=> "/images/me.jpg"
[3]=> "我的头像"
}
}
*/
正则表达式分解:
!\[
匹配图片起始标记(.*?)
非贪婪匹配alt文字\]\(
结束alt部分(.*?)
非贪婪匹配图片路径(?:\s+"(.*?)")?
可选匹配标题(非捕获组)\)
结束图片声明增强版(支持带空格的路径和标题):
$pattern = '/!\[(.*?)\]\((\S+?)(?:\s+(["\'])(.*?)\3)?\)/';
该模式可以匹配以下格式:




1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答522 阅读✓ 已解决
尝试一下