我试图忽略某些字符之间的空格,但是遇到了问题。我已经在谷歌上搜索了几天,似乎找不到正确的解决方案。
这是我的代码:
// Get Image data
preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch);
$image = $imagematch[4];
基本上这些是我拥有的一些场景:
<a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a>
(请注意width =“”和src =“”之间的空格)
以及
<a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a>
(注意width =""和height =" "之间缺少空格。)
是否有办法忽略这些字符之间的空格?因为我不是正则表达式专家。
\s?
表示匹配 0 或 1 个空格字符。但是,如果有多于 1 个空格字符怎么办?你需要使用\s*
来匹配 0 或更多。顺便说一句,你不应该使用正则表达式来解析 HTML,而应该使用其中的一个方法。 - cryptic ツ