0

私はこの文字列を持っています(それはアップルの.stringsファイルです):

/* this is a comment line; it may contain semicolons */
"you have here some text; also may contain semicolons" = "some other text;";

/* this is a comment line; it may contain semicolons */
"you have here some text; also may contain semicolons" = "some other text;";

等々。

コメントされていない各行の終わりにあるセミコロンの後で、この文字列を分割する必要があります。

explode(";\n", $string);行が;(空白)(改行)で終わる可能性があるため、使用すると正確でない場合があります

更新:出力は配列である必要があります。各要素には、コメント行(存在する場合)と引用符で囲まれた文字列行が含まれている必要があります。

4

2 に答える 2

1

ファイルを1行ずつ読み取り、 strpos()を使用してコメント文字をテストし、正規表現ではなくstr_getcsv()を使用してファイル行を解析するのが最適な場合があります。

于 2012-12-03T11:51:46.393 に答える
1

オプションの空白だけが気になる場合は、

$array = preg_split("/;\s*\n/", $string); 

preg_splitexplode区切り文字として文字列を取りながら、正規表現を取ります。

于 2012-12-03T12:21:54.237 に答える