【问题标题】:how to split a string into array using preg_split with two condition如何使用具有两个条件的 preg_split 将字符串拆分为数组
【发布时间】:2016-12-26 06:27:23
【问题描述】:

我有一个这样的字符串:x320h220

我想将此字符串拆分为两个变量:$width$height

我可以使用 explode 拆分它,但我必须使用此方法两次才能获得这些值,所以我发现 preg_split 可以解决问题。但我不知道正则表达式将这些字符串拆分为两个变量(查找字符串是否包含 x 然后将其余部分剪切到 h 然后将其余部分再次剪切到另一个变量中) 他们应该是这样的:

$width = 320;
$height = 220;

有什么建议吗?

【问题讨论】:

    标签: php arrays string explode preg-split


    【解决方案1】:

    使用preg_match(),而不是preg_split()。使用捕获组来提取这两个数字。

    if (preg_match('/x(\d+)h(\d+)/', $string, $match) ) {
        $width = $match[1];
        $height = $match[2];
    }
    

    在正则表达式中:

    • xh 在字面上匹配自己
    • \d+ 匹配数字序列
    • () 放在数字序列周围会创建一个捕获组,因此将匹配的部分放入$match 数组中。

    【讨论】:

    • @Barmar 很棒的家伙。您能解释一下答案中的正则表达式吗?如果可能,请逐一解释
    • @Mohammad 我已经添加了它,但是对于这样一个基本的正则表达式似乎几乎没有必要详细介绍。它不使用任何高级的东西,所以即使是 regexp 初学者也应该理解它。你应该去 www.regular-expression.info 并阅读教程。
    • @Barmar 谢谢,我去看看。
    【解决方案2】:

    使用这个 $size = preg_split("/[xh]/", "x320h220", -1, PREG_SPLIT_NO_EMPTY)

    希望它对你有用:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多