Php 从字符串中获取一个子字符串并打印它
这是我的字符串:在变量$raw中 电影名称:Ittefaq(2017)导演:Abhay Chopra明星:Sonakshi 辛哈,西德哈特马尔霍特拉,阿克沙耶卡纳发布日期:2017年11月3日 (印度)类型:神秘,惊悚格式:MatRoska(Mkv)文件大小: 850MB分辨率:1280x536运行时:01:45:31语言:印地语 字幕:英语[软编码]-多路编码器:MKVAGE(MC)团队 资料来源:Hon3y/ 现在我想从中提取“850MB” 注意:每次都会更改整个字符串。 但“文件大小”、“分辨率”等关键字保持不变,但其值会发生变化 我只想从中提取文件大小的值Php 从字符串中获取一个子字符串并打印它,php,string,variables,substring,preg-match,Php,String,Variables,Substring,Preg Match,这是我的字符串:在变量$raw中 电影名称:Ittefaq(2017)导演:Abhay Chopra明星:Sonakshi 辛哈,西德哈特马尔霍特拉,阿克沙耶卡纳发布日期:2017年11月3日 (印度)类型:神秘,惊悚格式:MatRoska(Mkv)文件大小: 850MB分辨率:1280x536运行时:01:45:31语言:印地语 字幕:英语[软编码]-多路编码器:MKVAGE(MC)团队 资料来源:Hon3y/ 现在我想从中提取“850MB” 注意:每次都会更改整个字符串。 但“文件大小”、“
$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
我认为下面的模式将足够紧密,只捕获您需要的内容,而不会错误地在文本中获取其他内容
/Size: ([\d\.MGTB]+)/
它将接受数字、点和MB、GB、TB文件大小。(如果文件大小带有点,例如1.35 GB)
如果得到所有可能的值,可以使用:
if (preg_match('~File Size: ([^\s]+)~', $raw, $matches)) {
echo $matches[1];
}
将从
文件大小:
获取字符串,直到下一个空白字符。这将不会捕获GB文件大小。我想要两个can u plz edt uranswer@Andreas,它会捕捉所有的东西,比如数字和字母。不!试试看,你就会明白。另外,不需要a-z
它可能只会使它捕获到字符串的不正确部分,“8.5GB”怎么样?这是确切的原始字符串吗?这里有断线吗?
if (preg_match('~File Size: ([^\s]+)~', $raw, $matches)) {
echo $matches[1];
}