php正则表达式帮助需要抛出一个错误

时间:2015-03-07 13:06:50

标签: php regex

嗨我有一个脚本我正在制作从api url抓取电视频道信息,但我遇到了一个问题api输出纯文本信息如下

BBC1 ( Now : BBC News Next : BBC News ))

所有我想要和需要的是频道名称BBC1所以我创建了一个正则表达式字符串,我可以删除不需要的代码在下面

$name = preg_replace("/\([^)]+\)/","",$html);

但问题是它一直在抛出一个错误,说出意想不到的动词,它也离开了)从最后也带来另一个问题摆脱了)最后我使用这个代码

$name = str_replace(")","",$name);

使用此代码)内部""显示为第一个的结束括号而不是之前的结束;

有些人可以说我需要除了第一个之前的名字之外删除所有内容(

2 个答案:

答案 0 :(得分:1)

这应该适合你:

(这里我只是使用preg_match_all()来获取第一个(.*?)之前的(}

<?php

    $str = "BBC1 ( Now : BBC News Next : BBC News ))";
    preg_match_all("/(.*?)\(/", $str, $matches);
    echo $matches[1][0];

?>

输出:

BBC1

答案 1 :(得分:0)

如果您只需要在(使用preg_mach()之前抓住所有内容,其结果如下:

preg_match('/([^\(]+)\s+\(/', $html, $preg_result); // one or more not '(' characters, than one or more space, than '(' character

var_dump($preg_result); // Required string will be in $preg_result[1]