这是我的字符串:变量$ 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”。
注意:每次都会更改整个字符串。但“文件大小:”,“分辨率”等关键字保持不变,但其值会发生变化。
我只想从中提取文件大小的值。
您将获得所有可能的值,您可以使用:
if (preg_match('~File Size: ([^\s]+)~', $raw, $matches)) {
echo $matches[1];
}
将从File Size:
获取字符串直到下一个空格字符。
我认为以下模式将足够紧密,只能捕获您需要的内容,而不是错误地在文本中获取其他内容。
/Size: ([\d\.MGTB]+)/
它将接受数字,点和MB,GB,TB文件大小。 (如果文件大小有点,例如1.35 GB)
preg_match("/Size: ([\d\.MGTB]+)/", $raw, $match);
$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