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

时间:2018-03-02 08:10:46

标签: php string variables substring preg-match

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

  

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

现在我想提取" 850MB"从它。

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

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

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

您可以使用以下所有可能的值:

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

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

答案 2 :(得分: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