删除右括号后的字符串末尾[重复]

问题描述 投票:0回答:1

我想使用简单的 HTML dom 进行抓取,但有一个问题是完整的标题出现。

完整标题演示

Random Name (Year) Other... Text 

我只需要:

Random Name (Year)

我的代码

$title = ltrim($html->find("header h1",0)->plaintext);
$title =  preg_replace('/ /',' ', $title );

标题

Иванов Иван Иванович (1234) TONIGHT
Name (Year) Extra Text 

现在我想删除多余的文本。

我只想拿

Random Name (Year)
并删除其余部分,因为我不需要其他文本。我只对年份之前的文字和括号中的年份感兴趣。一年之后(结束括号之后)的所有内容都应该消失。

我怎样才能写出这样的函数?

php sanitization
1个回答
0
投票

让我们使用正则表达式来匹配文本,直到匹配

(
后跟 4 位数字,然后是
)
?
是为了匹配而不是贪婪,即捕获第一个
(year)
出现。

$reg = '#^.*?\(\d\d\d\d\)#';
$str = 'Иванов Иван Иванович (1234) TONIGHT';
// extract regexp from string
$matches = [];
preg_match($reg, $str, $matches);
$result = $matches[0];

echo $result;
© www.soinside.com 2019 - 2024. All rights reserved.