我正在尝试获取属性的值并将其填充到数组中:
<p numbers="11.2,1.1 2,3,3.1 33"></p>
preg_match('/numbers="([0-9\\.]]+)"/',$elements,$match);
我需要这样的东西:
$match[0] -> 11.2
$match[1] -> 1.1
$match[2] -> 2
或者让我将数字存储在数组中的任何东西,但是我无法弄清楚正则表达式。
答案 0 :(得分:1)
我个人会简单地匹配所有数字,然后将它们分割
$matches = preg_match('/numbers="(.*)"/',$elements,$match);
$numbers = explode(',', $matches[1]);
答案 1 :(得分:0)
我想我有一个解决方案:
$string = '<tag> etc</tag>
<p numbers="11.2,1.1 2,3,3.1 33"></p>
<div> etc</div>';
// Catch only the numerals from the attribute numbers
preg_match('/<p.*numbers="(.*)"/', $string, $match);
// Catch each number separated by comma or space.
preg_match_all('/(\d+(\.?|\s?)(\d+)?)/', $match[0], $matches);
echo '<pre>';
print_r($matches[0]);
正则表达式在某种程度上非常简单,但是如果需要澄清,请写评论。
您可以在这里看到它经过测试:https://3v4l.org/iVp1v