Php 正则表达式在更广泛的上下文中存在多个内部巧合

Php 正则表达式在更广泛的上下文中存在多个内部巧合,php,regex,preg-match-all,multiple-instances,Php,Regex,Preg Match All,Multiple Instances,我想用正则表达式在一个短语中找到多个共因 匹配此短语中的多个维度,结果很简单: 检查$out[2]是否包含多个值,与第一个示例中的$out[1]相同 我错过了什么?我敢打赌,使用正则表达式是否可能做到这一点。这是因为当只找到一个匹配项时,但多次找到捕获组时,您只能得到最后一个 一个可能的解决方案是从元素中提取is,然后使用您拥有的第一个正则表达式 <?php preg_match_all("/(\d+\.\d)(x|cm)/", "120.0x140.0x215.0cm", $o

我想用正则表达式在一个短语中找到多个共因

匹配此短语中的多个维度,结果很简单:

检查
$out[2]
是否包含多个值,与第一个示例中的
$out[1]
相同


我错过了什么?我敢打赌,使用正则表达式是否可能做到这一点。

这是因为当只找到一个匹配项时,但多次找到捕获组时,您只能得到最后一个

一个可能的解决方案是从
元素中提取is,然后使用您拥有的第一个正则表达式

<?php
    preg_match_all("/(\d+\.\d)(x|cm)/", "120.0x140.0x215.0cm", $out);
    print_r($out);
?>

[0]=> array
    [0]=>120.0x
    [1]=>140.0x
    [2]=>215.0cm
[1]=> array
    [0]=>120.0
    [1]=>140.0
    [2]=>215.0
[2]=> array
    [0]=>x
    [1]=>x
    [2]=>cm
<?php
    preg_match_all("/<div>Dimensions: ((\d+\.\d)(x|cm))+<\/div>/", "<div>Dimensions: 120.0x140.0x215.0cm</div>", $out);
    print_r($out);
?>

[0]=> array
    [0]=><div>Dimensions: 120.0x140.0x215.0cm</div>
[1]=> array
    [0]=>215.0cm
[2]=> array
    [0]=>215.0
[3]=> array
    [0]=>cm