我需要管理逗號拆分中的轉義。 這是一個字符串例如:Php拆分字符串轉義配額
var1,t3st,ax_1,c5\,3,last
我需要這種分裂:
var1
t3st
ax_1
c5\,3
last
請考慮到這一點: 「C5 \,3」 不分裂。
我試着用這樣的:
$expl=preg_split('#[^\\],#', $text);
但我解開每個分割的最後一個字符。
我需要管理逗號拆分中的轉義。 這是一個字符串例如:Php拆分字符串轉義配額
var1,t3st,ax_1,c5\,3,last
我需要這種分裂:
var1
t3st
ax_1
c5\,3
last
請考慮到這一點: 「C5 \,3」 不分裂。
我試着用這樣的:
$expl=preg_split('#[^\\],#', $text);
但我解開每個分割的最後一個字符。
使用這個表達式
$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)
嘗試用回顧後:
preg_split('#(?<!\\),#', $text);
在你回答計算器逃脫最後一個斜線: '(?<\\\\!)#,#' – Tobia 2013-02-25 12:00:52
做一個3階段的方法
首先替換\與成才 「獨特」 之類\\
做你的分裂 「」
用\替換\\,
這不如正則表達式,但它會工作;)
是這樣行嗎?
<?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)
+1很好的解決方案 – 2013-02-25 11:39:05
我想糾正你的這樣的代碼:''$ expl = preg_split('#(?<!\\\),#',$ str,-1,PREG_SPLIT_NO_EMPTY);'。避免數組中的空元素 – Winston 2013-02-25 17:08:16