2

我需要以逗号分隔管理转义。这是一个字符串示例:

var1,t3st,ax_1,c5\,3,last

我需要这个拆分:

var1
t3st
ax_1
c5\,3
last

请注意这一点:“c5\,3”未拆分。

我试过这个:

$expl=preg_split('#[^\\],#', $text);

但是我丢失了每个拆分的最后一个字符。

4

4 回答 4

2

使用这个正则表达式

$str = 'var1,t3st,ax_1,c5\,3,last';
$expl=preg_split('#(?<!\\\),#', $str);

print_r($expl);  // output Array ( [0] => var1 [1] => t3st [2] => ax_1 [3] => c5\,3 [4] => last )

工作示例http://codepad.viper-7.com/pWSu3S

于 2013-02-25T11:37:29.277 回答
1

尝试向后看:

preg_split('#(?<!\\),#', $text);
于 2013-02-25T11:35:32.587 回答
0

做一个三阶段的方法

首先替换\,用一些“独特”的东西,比如\\

用“,”分开

用。。。来代替 \,

这不如正则表达式好,但它会起作用;)

于 2013-02-25T11:36:01.110 回答
0

这个可以吗 ?

<?php

$text = "var1,t3st,ax_1,c5\,3,last";
$text = str_replace("\,", "#", $text);
$xpode = explode(",", $text);
$new_text = str_replace("#", "\,", $xpode);
print_r($new_text);

?>

输出

Array ( [0] => var1 [1] => t3st [2] => ax_1 [3] => c5\,3 [4] => last ) 
于 2013-02-25T11:39:42.863 回答