php - 如何使用 php 提取数据(字符串)?

标签 php string

我是 php 的新手,我不知道如何在字符串中提取我想要的确切内容。 例如:

Instant Oats Drink - Chocolate Flavour 165g (33g x 5)

我想提取这些数据以便

Name: Instant Oats Drink - Chocolate Flavour
Weight: 165g
number of pack: 5
unit weight: 33g

请帮我解决这个问题。

最佳答案

如果您的所有字符串都具有相同的形式,您可以使用正则表达式。

考虑一下:

<?php

    $str = "Instant Oats Drink - Chocolate Flavour 165g (33g x 5)";

    preg_match('/(?P<title>[a-zA-Z\s\-]*)(?P<grammars>[0-9]*g)(\s+\()(?P<portion>[0-9]+g)(\s+x\s+)(?P<times>[0-9]+)(\))/', $str, $m);

    echo "Title : " . $m['title'] . '<br />';
    echo "Grammars : " . $m['grammars'] . '<br />';
    echo "Portion : " . $m['portion'] . '<br />';
    echo "Times : " . $m['times'] . '<br />';

?>

根据@Troy 的回答,你甚至可以使用那个甚至是 sorten 的答案

<?php

    $str = "Instant Oats Drink - Chocolate Flavour 165g (33g x 5)";

    preg_match('/(?P<title>.*) (?P<grammars>\d+g) \((?P<portion>\d+g) x (?P<times>\d+)\)/', $str, $m);

    echo "Title : " . $m['title'] . '<br />';
    echo "Grammars : " . $m['grammars'] . '<br />';
    echo "Portion : " . $m['portion'] . '<br />';
    echo "Times : " . $m['times'] . '<br />';

?>

关于php - 如何使用 php 提取数据(字符串)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7658535/

相关文章:

javascript - 无法从 JSON 数组和对象获取值

php - 用于大量导入脚本的 Ruby 或 Python?

java - 不确定我做错了什么,简单的中间子字符串

javascript - 使用 JavaScript 解析分隔文本行

php - 为网站创建智能预测搜索

php - FuelPHP 查询生成器加入多个字段

php - 在 php 中将 html 属性与正则表达式匹配

.net - 如何在 .NET 中通过索引有效地覆盖字符串的一部分?

excel - 在文本后添加格式化符号,保留现有文本的字符格式

javascript - 为什么绳子在一定的间隔内不动?