我想使用简单的 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)
并删除其余部分,因为我不需要其他文本。我只对年份之前的文字和括号中的年份感兴趣。一年之后(结束括号之后)的所有内容都应该消失。
我怎样才能写出这样的函数?
让我们使用正则表达式来匹配文本,直到匹配
(
后跟 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;