如何在两个条件下使用 preg_split 将字符串拆分为数组

how to split a string into array using preg_split with two condition

我有这样一个字符串:x320h220

我想将这个字符串分成两个变量:$width$height

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

$width = 320;
$height = 220;

有什么建议吗?

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

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

在正则表达式中:

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

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

希望它对你有用:)