2009-12-02 47 views
0

下面是一些PHP代码:使用PHP的preg从字符串中提取2组数字?

$myText = 'ABC#12345 (2009) XYZ'; 

$myNum1 = null; 

$myNum2 = null; 

我如何到$myNum1加上第一组数字从$myText#后和第二个数字从$myText()之间在中$myNum2。我会怎么做?

+0

我认为代码已丢失。 –

+0

你想在这个例子中使用$ myNum1和2? –

回答

0

如果你有形式 “12​​3#456” 的输入字符串,你可以做

$tempArray = explode("#", $input); 
if (sizeof($tempArray) != 2) { 
    echo "OH NO! Something bad happened!"; 
} 
$value1 = intval($tempArray[0]); 
$value2 = intval($tempArray[1]); 
echo "Result: " . ($value1 + $value2); 
+0

第二个数字地面不显示 – Tony

2
preg_match('/#(\d+).*\((\d+)\)/', $myText, $matches); 
$myNum1 = $matches[1]; 
$myNum2 = $matches[2]; 

假设你有这样的:

“的东西...#123123东西( 456456)”

,会给你 $ myNum1 = 123123 $ myNum2 = 456456

+0

谢谢,但这是行不通的。 – Tony

+0

因为,在最后一个数字组中,我在结果中看到一个“)”! – Tony

+0

错误的关闭paren被逃脱。它应该是:\\((\ d +)\\) – bish