preg_replace:删除标签

时间:2010-10-05 13:51:11

标签: php regex preg-replace preg-match preg-replace-callback

我有很多选项标签。我想删除标签,只获取值。 这是代码:

<?php
$result = preg_replace('/<option value=\"\d+\"  >([A-Za-z0-9]+)<\/option>/', '$1', $result);
?>

我不能使用strip_tags,strip_tags输出:

id="pesq_marca" class="select164" size="1" onchange="exibeModelosSelectpesq_marca(this.value, 'C','','');" >SelecioneAUDIBMWCHEVROLETCITROENFIATFORDGMCHONDAHYUNDAIJEEPKIA MOTORSMERCEDES-BENZMITSUBISHINISSANPEUGEOTRENAULTSUZUKITOYOTAVOLKSWAGENADAMOAGRALEALFA ROMEOASIA MOTORSBRMBUGGYCADILLACCBTCHAMONIXCHANACHERYCHRYSLERDAEWOODAIHATSUDKWDODGEEFFAENGESAENVEMOFERRARIGURGELHAFEIHUMMERINFINITIIVECO-FIATJAGUARJINBEIJPXLADALAND ROVERLEXUSLIFAN MOTORSLINCOLNLOBINIMAHINDRAMASERATIMAZDAMERCURYMINIMIURAMPNEVIO BRENDLERPORSCHEPROTOTIPOPUMASATURNSEATSHELBYSIMCASMARTSSANGYONGSUBARUTROLLERVOLAREVOLVOWAYWILLYS

使用此代码,我获得了$ result和大量垃圾的内容。怎么了? 谢谢。

3 个答案:

答案 0 :(得分:1)

之前已经问过你的问题 - 看到这篇文章,它肯定会对你有帮助(包括示例代码):

Stackoverflow: "php regex to read select form"

有问题的正则表达式(来自该帖子)是preg_match_all( '@(<option value="([^"]+)">([^<]+)<\/option>)@', $options, $arr);

答案 1 :(得分:1)

$result = preg_replace('/<option.*?>([A-Za-z0-9]+)<\/option>/', '$1', $result);

答案 2 :(得分:0)

试试这个:

preg_match_all('/<option [^>]*?>(.*)<\/option>/', $text, $match);
print_r($match[1]);