php数组的preg_replacement()
我正在创建一个动态php数组$linephp数组的preg_replacement(),php,Php,我正在创建一个动态php数组$line echo "<pre>",print_r($line,1),"</pre>"; $re1='(")'; # Any Single Character 1 $re2='((?:[a-z][a-z]+))'; # Word 1 $re3='(,)'; # Any Single Character 2 $re4='(\\s+)'; # White Space 1
echo "<pre>",print_r($line,1),"</pre>";
$re1='(")'; # Any Single Character 1
$re2='((?:[a-z][a-z]+))'; # Word 1
$re3='(,)'; # Any Single Character 2
$re4='(\\s+)'; # White Space 1
$re5='((?:[a-z][a-z]+))'; # Word 2
$re6='(\\s+)'; # White Space 2
$re7='.*?'; # Non-greedy match on filler
$re8='(")';
$reg1="/".$re1.$re2."/";
$reg2="/".$re3.$re4."/";
$reg3="/".$re5.$re6.$re7.$re8."/";
$line = preg_replace("/".'($reg1)$reg2($reg3)'."/", "$1$2", $line);//this is also generating the same array "AARON, ELVIA J",WATER RATE TAKER,WATER MGMNT,$81000.00,$73862.00
echo "<pre>",print_r($line,1),"</pre>";
$pattern="/".$re1.$re2.$re3.$re4.$re5.$re6.$re7.$re8."/";
$replacement="/".$re2.$re5.$re7."/";
$values = preg_replace($pattern, $replacement, $line);
$values = explode(',',$line);
echo "<br>";
$values =preg_replace('/[^A-Za-z0-9\-]/', '', $values);
$values=implode(',',$values);
echo "<pre>",print_r($values),"</pre>";
echo "<pre>",print_r($values,1),"</pre>";
";
AARONELVIAJ,水费收取者,水费管理,$81000.00,$73862.00
我所做的:
$line = '"AARON, ELVIA J",WATER RATE TAKER,WATER MGMNT,$81000.00,$73862.00';
$pieces = explode('"', $line);
$result = '';
foreach ($pieces as $value) {
if(substr( $value, 0, 1 ) === "," || substr($value, -1) == ','){
$result .= $value;
}else{
$value = str_replace(',', '', $value);
$result .= str_replace(' ', '', $value);
}
}
echo $result;
有人请帮我找到解决方案试试这个
该函数将为您完美地完成此操作
给出:
如果确实要从名称中删除空格和逗号,则可以添加:
在尝试输出数组之前,您最好使用array_walk或array_map对数组中的所有元素应用格式化函数。我尝试了array_map,但这并没有提供所需的结果。它还提供了AARON、ELVIAJ、WATERRATETAKER、WATERMGMNT、81000007386862001等结果。它正在生成相同的数组倍数t我不明白,$line是数组的元素吗?
AARON,ELVIAJ,WATERRATETAKER,WATERMGMNT,8100000,73862001
$line = '"AARON, ELVIA J",WATER RATE TAKER,WATER MGMNT,$81000.00,$73862.00';
$pieces = explode('"', $line);
$result = '';
foreach ($pieces as $value) {
if(substr( $value, 0, 1 ) === "," || substr($value, -1) == ','){
$result .= $value;
}else{
$value = str_replace(',', '', $value);
$result .= str_replace(' ', '', $value);
}
}
echo $result;
$result = str_getcsv($line);
Array
(
[0] => AARON, ELVIA J
[1] => WATER RATE TAKER
[2] => WATER MGMNT
[3] => $81000.00
[4] => $73862.00
)
$result[0] = preg_replace('/\s+|,/', '', $result[0]);