直前に¥が付いていないカンマで区切る正規表現
2006.08.25
直前に\が付いていないカンマで区切る。
$str = preg_split('#(?<!\\\),#', $str);
いろいろ出来る。
ただし「preg_split」は「分割する」事しかやっていないので「\,」はそのまま取得されます。
「\」を削除したい場合は以下のように書くか、取得したあとに必要な部分だけ「\」を取る必要があります。
function splitText($str)
{
return array_map(
create_function('$s','return preg_replace("#\\\\\,#",",",$s);'),
preg_split('#(?<!\\\),#', $str)
);
}
実行
$str = splitText("aaa,bb,cc\,dd,ee");
結果
Array
(
[0] => aaa
[1] => bb
[2] => cc,dd
[3] => ee
)
部分的に削除
$str = preg_split('#(?<!\\\),#', $str);
$str[3] = preg_replace('#\\\,#', ",", $str[3]);
