代码之家  ›  专栏  ›  技术社区  ›  honey

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

  •  -1
  • honey  · 技术社区  · 7 年前

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

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

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

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

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

    3 回复  |  直到 7 年前
        1
  •  1
  •   Syscall - leaving SO... Juhzuri    7 年前

    如果得到所有可能的值,可以使用:

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

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

        2
  •  1
  •   Andreas    7 年前

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

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

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

    preg_match("/Size: ([\d\.MGTB]+)/", $raw, $match);
    
        3
  •  0
  •   Michał Szczech    7 年前
    $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