2014-01-26 97 views

回答

2

一个正则表达式将是不必要的:

$output = array_filter(explode('#', $string)); 

See it in action

+0

谢谢你的回答,这对性能更好。正则表达式还是爆炸? –

+0

'爆炸()'应该更快。它也更容易理解,这使未来的维护更容易。 –

1

这样做:

preg_match_all('/#(\d+\-\d+)#/',$string,$output); 

您使用向前看和向后看,如果你想确保#在两端。

preg_match_all('/(?<=#)(\d+\-\d+)(?=#)/',$string,$output); 
+0

我需要输出数组中的数字位。不锐利。它会返回锐利值。 –

+0

好吧,你不明白的代码:-) –