正規表現と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>
ただし、一部の記事にはUntilがない場合があるため、正規表現は残りのコードの最初のコードと一致します(これは関連記事です)。
私の質問は、上記のみに一致するように正規表現を制限するにはどうすればよいですか?
<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>