$re = '/(?:-?(?:\d+?,)+)?-?\d+\.\d+/';
$str = '<tr class="child "> <td>-12,777,460.8</td> <td>432.8</td> <td>-12,460.8</td> <td>-4.53</td> </tr> <tr class="child impair"> <td>2,389.0</td> <td>408.2</td> <td>2,389.0</td> <td>2.92</td> </tr> <tr class="child "> <td>2,395.6</td> <td>393.3</td> <td>2,395.6</td> <td>1.13</td> </tr> <tr class="child impair"> <td>2,357.4</td> <td>413.6</td> <td>2,357.4</td> <td>0.87</td> </tr> <tr class="child "> <td>2,465.6</td> <td>405.6</td> <td>2,465.6</td> <td>1.30</td> </tr> <tr class="child impair"> <td>2,519.0</td> <td>412.0</td> <td>2,519.0</td> <td>7.63</td> </tr> <tr class="child "> <td>2,300.2</td> <td>571.9</td> <td>2,300.2</td> <td>28.33</td> </tr> <tr class="child impair"> <td>2,241.3</td> <td>888.4</td> <td>2,241.3</td> <td>44.00</td> </tr> <tr class="child "> <td>2,196.2</td> <td>914.8</td> <td>2,196.2</td> <td>50.02</td> </tr> <tr class="child impair"> <td>2,243.7</td> <td>920.3</td> <td>2,243.7</td> <td>43.27</td> </tr> <tr class="child "> <td>2,279.8</td> <td>721.7</td> <td>2,279.8</td> <td>33.96</td> </tr> <tr class="child impair"> <td>2,283.4</td> <td>730.6</td> <td>2,283.4</td> <td>32.09</td> </tr> <tr class="child "> <td>2,389.2</td> <td>623.8</td> <td>2,389.2</td> <td>33.16</td> </tr> <tr class="child impair"> <td>2,290.2</td> <td>593.7</td> <td>2,290.2</td> <td>34.00</td> </tr> <tr class="child "> <td>2,222.2</td> <td>711.0</td> <td>2,222.2</td> <td>37.51</td> </tr> <tr class="child impair"> <td>2,200.4</td> <td>1,052.5</td> <td>2,200.4</td> <td>44.70</td> </tr> <tr class="child "> <td>2,202.8</td> <td>1,060.6</td> <td>2,202.8</td> <td>50.02</td> </tr> <tr class="child impair"> <td>2,135.9</td> <td>993.9</td> <td>2,135.9</td> <td>50.73</td> </tr> <tr class="child "> <td>2,177.7</td> <td>1,028.5</td> <td>2,177.7</td> <td>54.04</td> </tr> <tr class="child impair"> <td>2,092.6</td> <td>1,095.5</td> <td>2,092.6</td> <td>48.24</td> </tr> <tr class="child "> <td>1,980.3</td> <td>586.2</td> <td>1,980.3</td> <td>36.83</td> </tr> <tr class="child impair"> <td>2,029.0</td> <td>600.0</td> <td>2,029.0</td> <td>33.84</td> </tr> <tr class="child "> <td>1,995.1</td> <td>513.9</td> <td>1,995.1</td> <td>30.41</td> </tr> <tr class="child impair"> <td>1,990.6</td> <td>470.1</td> <td>1,990.6</td> <td>12.00</td> </tr>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php