我有以下字符串:這個正則表達式有什麼問題?
<?php
$string = '<meta name="Keywords" lang="fr" content="ecole commerce,
apres bac, ecole management, ecole de management, écoles de commerce,
école de management, classement ecole de commerce, ecole commerce paris,
ecole superieure de commerce, concours ecole commerce, hec, esc, prepa,
forum ecole commerce, avis ecole commerce" /><meta name="description"
content="Tout pour s\'informer et échanger sur les écoles de commerce
et de management, les concours, les classements, la prépa... Des
témoignages et un forum pour faire le meilleur choix" /><meta
name="robots" content="all" />';
?>
,我嘗試使用這個正則表達式表達從它那裏得到只有「說明」元:
<?php
echo preg_replace('/(?:.*)name\="description" content\="(.*)"(?:.*)/i',
'$1', $string);
?>
但我得到的是:
Tout pour s'informer et échanger sur les écoles de commerce et de management,
les concours, les classements, la prépa... Des témoignages et un forum
pour faire le meilleur choix" /><meta name="robots" content="all
那麼,爲什麼多加" /><meta name="robots" content="all
?!
PS:有代碼中沒有換行,我只是說他們的可讀性...
它試圖解析HTML,這就是它的錯誤。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – You 2010-10-30 21:00:05