MySQL表中的一组值包含不同格式的维度,例如:
这些数字都是以毫米为单位的维度,我想要一个能够提取所有数字(例如,数组)的正则表达式,这样我就可以将它们转换为英寸并将它们以相同的方式反射出来。格式。
使用regextester.com我测试了模式(\d+)
并且它工作正常,突出显示字符串中的任何数字组。
但是,当我尝试在我的PHP代码(下面)中使用它时,匹配数组看起来与我期望的不同。
$pattern = '/(\d+)/';
$string = '2140 × 910';
preg_match ($pattern, $string, $matches);
echo "<pre>";
print_r ($matches);
echo "</pre>";
此代码输出:
Array
(
[0] => 2140
[1] => 2140
)
提前感谢您的帮助。
答案 0 :(得分:1)
preg_match
仅返回第一场比赛。如果您想获得所有匹配项,请使用preg_match_all
:
$pattern = '/(\d+)/';
$string = '2140 × 910';
preg_match_all($pattern, $string, $matches);
var_dump($matches);
输出:
array(2) {
[0]=>
array(2) {
[0]=>
string(4) "2140"
[1]=>
string(3) "910"
}
[1]=>
array(2) {
[0]=>
string(4) "2140"
[1]=>
string(3) "910"
}
}
答案 1 :(得分:1)
尝试使用preg_match_all()