Php 如何使用带两个条件的preg_split将字符串拆分为数组
我有这样一个字符串:Php 如何使用带两个条件的preg_split将字符串拆分为数组,php,arrays,string,explode,preg-split,Php,Arrays,String,Explode,Preg Split,我有这样一个字符串:x320h220 我想把这个字符串分成两个变量:$width和$height 我可以使用explode拆分它,但我必须使用此方法两次才能获得这些值,因此我发现preg\u split可以实现此目的。但我不知道正则表达式如何将这些字符串拆分为两个变量(如果字符串包含x,则将其余部分剪切到h,然后在另一个变量中再次剪切其余部分),它们应该是这样的: $width = 320; $height = 220; 有什么建议吗?使用preg\u match(),而不是preg\u sp
x320h220
我想把这个字符串分成两个变量:$width
和$height
我可以使用explode拆分它,但我必须使用此方法两次才能获得这些值,因此我发现preg\u split
可以实现此目的。但我不知道正则表达式如何将这些字符串拆分为两个变量(如果字符串包含x,则将其余部分剪切到h,然后在另一个变量中再次剪切其余部分),它们应该是这样的:
$width = 320;
$height = 220;
有什么建议吗?使用preg\u match()
,而不是preg\u split()
。使用捕获组提取这两个数字
if (preg_match('/x(\d+)h(\d+)/', $string, $match) ) {
$width = $match[1];
$height = $match[2];
}
在regexp中:
和x
按字面意思匹配h
匹配一个数字序列\d+
- 在数字序列周围放置
将创建一个捕获组,因此匹配的部分将放入()
数组中$match
preg\u match()
,而不是preg\u split()
。使用捕获组提取这两个数字
if (preg_match('/x(\d+)h(\d+)/', $string, $match) ) {
$width = $match[1];
$height = $match[2];
}
在regexp中:
和x
按字面意思匹配h
匹配一个数字序列\d+
- 在数字序列周围放置
将创建一个捕获组,因此匹配的部分将放入()
数组中$match
- 使用此
$size=
preg\u split(“/[xh]/”,“x320h220”,-1,preg\u split\u NO\u EMPTY)
希望它对你有用:)使用这个
$size=preg\u split(“/[xh]/”,“x320h220”,-1,preg\u split\u NO\u EMPTY)
希望它对你有用:)@Barmar真棒的家伙。你能解释一下你答案中的正则表达式吗?如果可能的话,解释其中的每一个you@Mohammad我已经添加了它,但是对于这样一个基本的regexp,似乎没有必要详细说明。它不使用任何高级的东西,所以即使是regexp初学者也应该理解它。您应该访问www.regular-expression.info并阅读教程。@Barmar谢谢,我会查出来。@Barmar真棒的家伙。你能解释一下你答案中的正则表达式吗?如果可能的话,解释其中的每一个you@Mohammad我已经添加了它,但是对于这样一个基本的regexp,似乎没有必要详细说明。它不使用任何高级的东西,所以即使是regexp初学者也应该理解它。您应该访问www.regular-expression.info并阅读教程。@Barmar谢谢,我会查看的。