如何在两个条件下使用 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];
}
在正则表达式中:
x
和 h
字面上匹配自己
\d+
匹配数字序列
- 在数字序列周围放置
()
创建一个捕获组,因此匹配的部分将放入 $match
数组。
使用这个
$大小 = preg_split("/[xh]/", "x320h220", -1, PREG_SPLIT_NO_EMPTY)
希望它对你有用:)
我有这样一个字符串: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];
}
在正则表达式中:
x
和h
字面上匹配自己\d+
匹配数字序列- 在数字序列周围放置
()
创建一个捕获组,因此匹配的部分将放入$match
数组。
使用这个
$大小 = preg_split("/[xh]/", "x320h220", -1, PREG_SPLIT_NO_EMPTY)
希望它对你有用:)