我在這篇文章中有以下正則表達式(Regular expression for extracting tag attributes)。如何用一個正則表達式選擇標籤名稱和屬性以及這些屬性的值?
(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?
我創建了下面的PHP代碼,它很好地工作。我從preg_match_all()函數獲取[id ='gridview1'和'id'和'gridview1']。
$regexp = '/(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?/';
$text = '<asp:gridview id=\'gridview1\' />';
$matches = null;
preg_match_all($regexp, $text, $matches);
print_r($matches);
應該如何正則表達式來改變也返回「ASP」和「gridview的」?(或 '富' 和 '酒吧' 當我使用:
<富:酒吧/ >
您是否考慮過使用SimpleXML代替正則表達式? – 2009-05-26 23:45:27
「有些人遇到問題時會想,」我知道,我會用正則表達式。「現在他們有兩個問題。」如果您需要做的不僅僅是最基本的HTML分析,請使用XML解析器。 – 2009-05-27 00:34:03