我有一個像這樣的preg_match有時
$data = '<a href="not important"><span class="theclass">data (not important)</span></a> <span class="anotherclass">extra data (October 1, 2010)</span>';
數據我想要得到的括號內的日期,以便香港專業教育學院做了以下的preg_match
preg_match("/\((([a-zA-Z]{5,10} .*?)|(\d{4}))\)/i",$data,$res);
請勿有時'10月1日'不存在但是年總是存在因此OR條件....事情是它給了我在這種情況下數組3,我知道它是因爲我有3個大括號條件,有沒有其他更好,更乾淨的方式來實現這一目標?
第二個條件的方法
$data = <a href="not important"><span class="theclass">data</span></a> <span class="theother">data <a href="not importand">data</a> (2009)</span>
</h3>
謝謝你們
**不要使用正則表達式來解析HTML。使用合適的HTML解析模塊**您無法可靠地使用正則表達式解析HTML,並且您將面臨悲傷和挫折。只要HTML從你的期望改變,你的代碼就會被破壞。有關如何使用已經編寫,測試和調試的PHP模塊正確解析HTML的示例,請參閱http://htmlparsing.com/php。 –
即使我用xpath dom我仍然需要一個類參考它可以得到的數據。這與preg_match完成的事情幾乎完全相同,在下面的preg之前,所以我不明白爲什麼人們反對它......這是其他人更輕量級? – Anup