Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php正则表达式帮助需要抛出一个错误_Php_Regex - Fatal编程技术网

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

php正则表达式帮助需要抛出一个错误,php,regex,Php,Regex,嗨,我有一个脚本,我正在做,从api的网址抓取电视频道信息,但我遇到了一个问题,api输出纯文本信息如下 BBC1 ( Now : BBC News Next : BBC News )) 我想要和需要的只是频道名BBC1,所以我创建了一个regex字符串,尽我所能删除不需要的内容。下面是代码 $name = preg_replace("/\([^)]+\)/","",$html); 但问题是,它不断抛出一个错误,表示意外的t动词,它也会从结尾处离开),这就给我带来了另一个问题,以解决)在我使

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

BBC1 ( Now : BBC News Next : BBC News ))
我想要和需要的只是频道名BBC1,所以我创建了一个regex字符串,尽我所能删除不需要的内容。下面是代码

$name = preg_replace("/\([^)]+\)/","",$html);
但问题是,它不断抛出一个错误,表示意外的t动词,它也会从结尾处离开),这就给我带来了另一个问题,以解决)在我使用此代码的结尾

$name = str_replace(")","",$name);
使用此代码,内部“”显示为第一个括号的结束括号,而不是之前的括号


有人能告诉我,除了第一个名字之前的名字,我需要删除所有东西(

这应该适合你:

(在这里,我只需要在第一个
)之前获取所有内容(
(.*)


如果您只需要在第一次
之前抓取所有内容,请使用
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]

所以你只想从你的字符串中抓取
BBC1
?是的,我需要它在第一个单词之前的单词(但是我抛出了错误并留下了代码)在结尾处。fyi:你可以接受这个答案,它是如何帮助了你,解决了你的问题!()这只适用于选定的频道,有些频道的名字像so E4+1和Sky Movies迪斯尼在巫婆点有不止一个单词它只返回E4或Sky这似乎很有效谢谢你这么多我将尝试了解更多regex@saveonsky不客气!祝你有一个愉快的一天:D(仅供参考:和)@Rizier123我不是下一个投票人,但是你可以使用
echo preg\u replace('~\s*\(.*\),''$str);
echo preg\u replace('~\s*\(.*.''$str);
。@AvinashRaj是的,这也可以工作,OP甚至可以在一行中输出它,当他使用
preg\u replace()
BBC1
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]