使用PHP';从字符串中提取2组数字;她怀孕了?

使用PHP';从字符串中提取2组数字;她怀孕了?,php,pcre,Php,Pcre,下面是一些PHP代码: $myText = 'ABC #12345 (2009) XYZ'; $myNum1 = null; $myNum2 = null; 如何将中的#之后的$myText中的第一组数字添加到$myNum1中,以及$myText中介于中的()中的第二组数字添加到$myNum2中。我该怎么做呢?如果您有一个格式为“123#456”的输入字符串,您可以这样做 $tempArray = explode("#", $input); if (sizeof($tempArray) !

下面是一些PHP代码:

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

$myNum1 = null;

$myNum2 = null;

如何将中的
#
之后的
$myText
中的第一组数字添加到
$myNum1
中,以及
$myText
中介于中的
()
中的第二组数字添加到
$myNum2
中。我该怎么做呢?

如果您有一个格式为“123#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);
假设您有类似于:

“材料…#123123材料(456456)”

那会给你 $myNum1=123123
$myNum2=456456456

因为对于最后一个数字组,我在结果中看到一个“)”!错误的关闭帕伦逃脱了。它应该是:\((\d+)\)在这个示例中,您希望$myNum1和$2是什么?
preg_match('/#(\d+).*\((\d+)\)/', $myText, $matches);
$myNum1 = $matches[1];
$myNum2 = $matches[2];