我正在将mediawiki标记转换为html。 坚持正确转换图片标签
带有图片代码的Mediawiki文字
[[File:xyz2.png|none|thumb|748x748px]]
我正在使用preg_replace和以下模式在某种程度上起作用
preg_replace(
"/\[\[(file):(.+?)\]\]/i",
"<img src='".explode("|",'$2',1)[0]."' alt=\"$6\"/>"
[[File:xyz2.png|none|thumb|748x748px]]
);
输出
<img src="xyz2.png|none|thumb|748x748px" alt="">
然而,在这种情况下所需的输出是
<img src="xyz2.png" alt="">
为实现这一目标,可以在匹配/替换模式中进行哪些修改?
答案 0 :(得分:1)
使用您当前的正则表达式,您将匹配所有内容,直到第二个捕获组的两个结束括号。但是你可以改变它,所以你只需抓住所有东西,直到第一个管道,然后你就会有你的文件名,例如
preg_replace( "/\[\[(file):([^|]*).*\]\]/i", "<img src='$2' alt=\"$6\"/>", "[[File:xyz2.png|none|thumb|748x748px]]" );