从字符串中获取子字符串并打印它

问题描述 投票:-1回答:3

这是我的字符串:变量$ raw

电影片名:Ittefaq(2017)导演:Abhay Chopra明星:Sonakshi Sinha,Sidharth Malhotra,Akshaye Khanna发行日期:2017年11月3日(印度)类型:神秘,惊悚格式:MatRoska(Mkv)文件大小:850MB分辨率:1280x536运行时间: 01:45:31语言:印地语字幕:英文[软编码] - Muxed Encoder:MkvCage(MC)团队来源:Hon3y /

现在我想从中提取“850MB”。

注意:每次都会更改整个字符串。但“文件大小:”,“分辨率”等关键字保持不变,但其值会发生变化。

我只想从中提取文件大小的值。

php string variables substring preg-match
3个回答
1
投票

您将获得所有可能的值,您可以使用:

if (preg_match('~File Size: ([^\s]+)~', $raw, $matches)) {
    echo $matches[1];
}

将从File Size:获取字符串直到下一个空格字符。


1
投票

我认为以下模式将足够紧密,只能捕获您需要的内容,而不是错误地在文本中获取其他内容。

/Size: ([\d\.MGTB]+)/

它将接受数字,点和MB,GB,TB文件大小。 (如果文件大小有点,例如1.35 GB)

preg_match("/Size: ([\d\.MGTB]+)/", $raw, $match);

0
投票
$raw = 'Movie Title: Ittefaq (2017) Director: Abhay Chopra Stars: Sonakshi Sinha, Sidharth Malhotra, Akshaye Khanna Release Date: 3 November 2017 (India) Genres: Mystery, Thriller Format: MatRoska (Mkv) File Size: 850MB Resolution: 1280x536 Runtime: 01:45:31 Language: Hindi Subtitles: English [Softcoded] - Muxed Encoder: MkvCage (MC) Team Source: Hon3y /';

$matches = [];
preg_match("/Size: ([\da-zA-Z]+)/", $raw, $matches);

echo $matches[1];

上面的例子将输出:

850MB
© www.soinside.com 2019 - 2024. All rights reserved.