如何使用带有两个条件的preg_split将字符串拆分为数组

时间:2016-12-26 06:27:23

标签: php arrays string explode preg-split

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

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

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

$width = 320;
$height = 220;

任何建议?

2 个答案:

答案 0 :(得分:4)

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

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

在正则表达式中:

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

答案 1 :(得分:0)

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

希望它对您有用:)