Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在正则表达式模式中写入$1_Php_Regex - Fatal编程技术网

Php 如何在正则表达式模式中写入$1

Php 如何在正则表达式模式中写入$1,php,regex,Php,Regex,我正在尝试编写一个正则表达式程序,它不会在系列中重复单元。 我想捕捉这个单位,这里是厘米 <?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,6.5,8,9.6 and 10 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,6.5,8,9.6 and 10 CM

请帮帮我。

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

preg_match('/ \d+\s?\.?(\w+)?/',$match, $matches);
$out = preg_replace('/'.$matches[1].'(?!$)/', '', $match);
打印$matches时,我们知道$matches[1]包含cm

Array ( [0] => 10 cm [1] => cm )
哦是否要检测所有术语都使用了相同的单位,并将其从除最后一个术语外的所有术语中删除?有趣。
Array ( [0] => 10 cm [1] => cm )