PHP preg_match用逗号分隔数字的HTML arttribue

时间:2018-08-23 08:34:06

标签: php html regex preg-match

我正在尝试获取属性的值并将其填充到数组中:

<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

或者让我将数字存储在数组中的任何东西,但是我无法弄清楚正则表达式。

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