如何在正则表达式模式中写入1美元

时间:2013-12-11 04:21:29

标签: php regex

我正在尝试编写一个不重复串行单元的正则表达式程序。 我想捕获单位,这里是CM。

<?php
$match = '4 CM,6.5 CM,8 CM,9.6 cm and 10 CM';
if(preg_match('/\d+\s?(\w+)(?!$)/i',$match))
{
$out = preg_replace('/ $1(?!$)/i', '', $match);
echo $out;
}
?>

示例输入:

4 CM,6.5 CM,8 CM,9.6 cm and 10 CM

输出:

4,6.5,8,9.6 and 10 CM

请帮帮我。

1 个答案:

答案 0 :(得分:0)

找到正确的方法。 在preg_match中添加$ matches。它是一个数组。

preg_match('/ \d+\s?\.?(\w+)?/',$match, $matches);
$out = preg_replace('/'.$matches[1].'(?!$)/', '', $match);

在打印$匹配时,我们知道$ matches [1]包含cm。

Array ( [0] => 10 cm [1] => cm )