使用正则表达式和 PHP,我试图获取 title 属性的内容,如下所示。
preg_match('/<abbr class="dtstart" title="([^"]*)"/i', $file_string, $starts);
$starts_out = $starts[1];
preg_match('/<abbr class="dtend" title="([^"]*)"/i', $file_string, $ends);
$ends_out = $ends[1];
这是我想要获取的代码的确切部分,并且我正确获取了数据。
<div id="eventDetailInfo">
<h2>When</h2>
<div class="p">
<div>From:
<abbr class="dtstart" title="2012-08-24T17:00:00">Friday, August 24th, 2012</abbr></div>
<div>Until:
<abbr class="dtend" title="2012-08-26">Saturday, August 25th, 2012</abbr></div>
</div>
</div>
但是,因为有时在某些文章中没有直到,正则表达式匹配剩余代码中的第一个(这是相关文章)。
我的问题是如何将正则表达式限制为仅匹配上述内容,如果没有
<div>Until:
<abbr class="dtend" title="2012-08-26">Saturday, August 25th, 2012</abbr></div>
找到了,留空?
这是页面的其余代码,不幸的是正则表达式匹配它。
<div class="evdate">
<em>When:</em>
<abbr class="dtstart" title="2012-07-03T21:00:00">July 3rd</abbr>
to
<abbr class="dtend" title="2012-07-13">July 12th</abbr>*
</div>
<div class="evtime"><em>Time:
</em>
21:00
</div>
</div>