替换csv文件中的逗号

时间:2015-06-24 08:54:13

标签: php regex csv

我有一个包含以下内容的CSV文件:

"Title","Firstname","Lastname","Description"
"Mr","Peter","Tester",,
"Mrs",,"Master","Chief, Supporter"
"Mr","Seg, Jr.","Tuti","Head, Developer"

现在我想删除preg_replace"Chief, Supporter"; "Seg, Jr."; "Head, Developer")引用的有关逗号的引号。

但我无法构建合适的正则表达式。

我的上一个结果如下:/\"(.[^\",]*),(.[^\"]*)\"/i

2 个答案:

答案 0 :(得分:1)

您的要求有点不清楚,但如果我理解正确,您希望删除逗号,如果双引号字符串中存在逗号,那么

e.g。 "Head, Developer"变为"Head Developer"

基于这个假设然后

/\"([^\"]+?),+ *(\w[^\"]+?)\"/gmi

会找到这些逗号,

"$1 $2"

将用空格替换它。

请参阅demo here

PHP示例(我不熟悉php,因此字符转义等可能需要调整)

<?php
$string = '"Mr","Seg Jr.","Tuti","Head Developer"';
$pattern = '/\"([^\"]+?),+ *(\w[^\"]+?)\"/gmi';
$replacement = '"$1 $2"';
echo preg_replace($pattern, $replacement, $string);
?>

答案 1 :(得分:-1)

使用此正则表达式:((?>\*\*)),((?>\*\*))

在括号中捕获**并替换为,,请参阅DEMO