0

次のような文字列があります。

'word','another word','and a sentence','and more','etc etc'

これを 2 つの文字列に分割し、2 番目のコンマで区切る必要がありますが、どちらの文にも表示されません。複雑なのは、文字列のさまざまな引用符部分の内部にコンマが含まれている可能性があることです。

誰でも私を助けることができますか?

4

4 に答える 4

1

これは CSV 構文に非常によく似ているため、次のようになります。

$parsed  = str_getcsv($string, ',', "'");
$string1 = join(',', array_slice($parsed, 0, 2));
$string2 = join(',', array_slice($parsed, 2));

PHP のバージョンが 5.3str_getcsv未満php://tempfgetcsv.

または、構文の難しさに応じてstrtok、単純なパーサーに使用できます。'最初の 、次に次の'、次に a ,、次に a '、次に次を見つける'と、文字列の最初の部分が得られます...

于 2013-04-10T06:09:01.890 に答える
0

引用符の間にコンマが入る可能性があると言っているので、preg_splitは爆発するよりもはるかに役立ちます

        <?php

                 $string = "'word','another word','and a sentence','and more','etc etc'";
                 $pattern = '%\',\'%';
                 $split = preg_split($pattern,$string);
                 $array1 = array();
                 $array2 = array();
                 foreach($split as $key=>$value)
                 {
                    $value  = trim($value,"'");
                    $value = "'{$value}'";

                    if(($key === 0) || ($key ===1))
                    {
                        $array1[] = $value;
                    }
                    else
                    {
                        $array2[] = $value; 
                    }
                 }

                echo $req_string1 = implode(',',$array1);
                echo "<br>";
                echo $req_string2 = implode(',',$array2);     


             ?>
于 2013-04-10T06:26:53.307 に答える