我有以下字符串:这个正则表达式有什么问题?
<?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