preg_replace mediawiki 标记的图像标签的模式和替换
preg_replace pattern and replacement for image tag of mediawiki markup
我正在将 mediawiki 标记转换为 html。
无法正确转换图像标签
带图像标签的 Mediawiki 文本
[[File:xyz2.png|none|thumb|748x748px]]
我正在使用 preg_replace 并且以下模式在一定程度上有效
preg_replace(
"/\[\[(file):(.+?)\]\]/i",
"<img src='".explode("|",'',1)[0]."' alt=\"\"/>"
[[File:xyz2.png|none|thumb|748x748px]]
);
输出为
<img src="xyz2.png|none|thumb|748x748px" alt="">
但是在这种情况下需要的输出是
<img src="xyz2.png" alt="">
可以对匹配/替换模式进行哪些修改以实现此目的?
使用当前的正则表达式,您可以将两个结尾括号之前的所有内容与第二个捕获组匹配。但是你可以改变它,这样你就可以抓住所有的东西,直到第一个管道,然后你就会有你的文件名,例如
preg_replace(
"/\[\[(file):([^|]*).*\]\]/i",
"<img src='' alt=\"\"/>",
"[[File:xyz2.png|none|thumb|748x748px]]"
);
我正在将 mediawiki 标记转换为 html。 无法正确转换图像标签
带图像标签的 Mediawiki 文本
[[File:xyz2.png|none|thumb|748x748px]]
我正在使用 preg_replace 并且以下模式在一定程度上有效
preg_replace(
"/\[\[(file):(.+?)\]\]/i",
"<img src='".explode("|",'',1)[0]."' alt=\"\"/>"
[[File:xyz2.png|none|thumb|748x748px]]
);
输出为
<img src="xyz2.png|none|thumb|748x748px" alt="">
但是在这种情况下需要的输出是
<img src="xyz2.png" alt="">
可以对匹配/替换模式进行哪些修改以实现此目的?
使用当前的正则表达式,您可以将两个结尾括号之前的所有内容与第二个捕获组匹配。但是你可以改变它,这样你就可以抓住所有的东西,直到第一个管道,然后你就会有你的文件名,例如
preg_replace( "/\[\[(file):([^|]*).*\]\]/i", "<img src='' alt=\"\"/>", "[[File:xyz2.png|none|thumb|748x748px]]" );