我正在尝试编写一个不重复串行单元的正则表达式程序。 我想捕获单位,这里是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
请帮帮我。
答案 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 )