我有以下形式的变量:
$x = "1-15"
$y = "2-18"
等
我需要将第一个和第二个整数提取为单独的变量。
例如:
如果$x = "1-15"
,则返回值应为$z = 1
和$w = 15
。
我知道可以用正则表达式做到这一点,但是从我所听到的情况来看,如果可能的话应该避免。
那么"最快"实现这个目标的方式?
答案 0 :(得分:3)
如果你确定这是格式,你可以拆分字符串(假设它是一个字符串,而不是你写的字面)。
在php中使用explode
进行拆分:
http://php.net/manual/en/function.explode.php
$x = "1-15"; //assuming it is indeed a string
list($z, $w) = explode('-', $x);
答案 1 :(得分:1)
使用explode
是一个更好的选择,如果你想使用regex
,希望这个解决方案没问题。
正则表达式: ^\s*(\d+)\s*\-\s*(\d+)\s*$
1。
^\s*(\d+)\s*\-\s*(\d+)\s*$
这将匹配digits - digits
模式,这也将处理空格。
<?php
$x = '1-15';
extract(getVariables($x));
echo $z;
echo $w;
function getVariables($x)
{
preg_match("/^\s*(\d+)\s*\-\s*(\d+)\s*$/", $x,$matches);
return array("z"=>$matches[1],"w"=>$matches[2]);
}