簡體   English   中英

正則表達式拆分此字符串

[英]Regular Expression to Split this string

我想用逗號分割后面的字符串。

1,"x1",43,"tr","y,7"

結果數組應如下所示。

0=>1
1=>"x1"
2=>43
3=>"tr"
4=>"y,7"

簡而言之,如果在引號之間,則不應考慮逗號。

如果使用explode,我會得到以下結果,這是我不想要的。

[4:58:20 PM] Mihir Dhandha: 0=>1
1=>"x1"
2=>43
3=>"tr"
4=>"y
5=>7"

我被困在這里,請幫忙。

試試str_getcsv

<?php

$s = '1,"x1",43,"tr","y,7"';
$result = str_getcsv($s);
var_dump($result);
echo "\n";

// array(5) {
//   [0]=>
//   string(1) "1"
//   [1]=>
//   string(2) "x1"
//   [2]=>
//   string(2) "43"
//   [3]=>
//   string(2) "tr"
//   [4]=>
//   string(3) "y,7"
// }


?>

以下代碼段:

$s = '1,"x1",43,"tr","y,7"';
print_r(preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $s));

產生:

Array
(
    [0] => 1
    [1] => "x1"
    [2] => 43
    [3] => "tr"
    [4] => "y,7"
)

ideone上可以看出。

正則表達式,(?=([^"]*"[^"]*")*[^"]*$)意思是:僅當逗號為零或雙引號為偶數時,才匹配逗號。

簡單!! 您的字符串是CSV。

使用$your_array=str_getcsv($your_string);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM