2015-10-15 27 views
-2

我正在循环访问一个数组,并且有多个条目可以像这样返回。来自复杂字符串的PHP解析数

llll-aaaa-dddd.zzzz-124 
xxd98sss-61 
fff.sss-ddx-74 

我需要在PHP的方式在每次迭代的最后冲刺后,解析出最后一个号码,让我可以在另一个函数调用中使用它。

这些条目可能有其他的破折号,其他数字等......但最后一个数字总是有一个连字符,然后是数字。连字符后面只需要完整的最后一个数字。

任何正则表达式的大师能够伸出援手吗?

+2

在短划线上爆炸,得到数组的最后一个元素 – 2015-10-15 04:06:51

+0

我认为'。* - (\ d +)'会做到这一点。负数和中间数字会有问题。 – chris85

回答

1

这是一个简单的正则表达式,几乎不需要上师。

preg_match('/-(\d+)$/', $line, $match); 
$num = $match[1]; 

\d+匹配的数字序列,并$所述字符串的末尾匹配。圆括号定义了一个捕获组,并且$match[1]包含该组的内容。

+0

谢谢,这完美的工作! – superm

0

已尝试过preg_match("/(\d*)$/", $input_line, $output_array)。它返回字符串末尾的数字

preg_match("/(-\d*)$/", $input_line, $output_array);。这会返回最后的数字以及大肆宣传“ - ”。