1

CSV ファイルに次の行があります

,1,193,23 Video,,"Slotsgade 2, 2.th",,,,,,Copenhagen N,,DK-2200,Denmark,,,,,,,,
,,,Europe,+45 31450980,,info@23company.com,www.23video.com,,,,,,,,Cabsat Online
 Video Industry Sourcebook 12,Mr.,Kristoffer,,Schou,,M,,,,,,,,,,,,,,,,,,,,,,,,,
,,,schou@23company.com,,,,,,,

ご覧のように

"Slotsgade 2, 2.th"

間にコンマがありpreg_split、行を列に分解するために使用しています。

二重引用符の間のコンマをスキップする正規表現を誰かに提案してもらえますか

私はすでにこれを試しました:

/,|".*(?=")/      

preg_splitデータを正しく取得するために使用できる正規表現は何ですか?

4

2 に答える 2

5

fgetcsv関数を使用すると、それが処理されます。

また、CSV 文字列を配列に解析するstr_getcsvもあります。

于 2012-08-27T10:22:05.297 に答える
0

RegexBuddyのライブラリから:

CSV: 任意のフィールド

CSV ファイル内の任意の 1 つのフィールドに一致します。この正規表現を使用して、すべてのフィールドを反復処理します。

"[^"\r\n]*"|[^,\r\n]*

CSV: 余分な空白を含む任意のフィールド

CSV ファイル内の任意の 1 つのフィールドに一致します。この正規表現を使用して、すべてのフィールドを反復処理します。正規表現一致で二重引用符で囲まれたフィールドの前後に余分な空白を含めます。

[ \t]*+"[^"\r\n]*+"[ \t]*+|[^,\r\n]*+

CSV: 完全な行、すべてのフィールド

行ごとに 3 つのフィールドを持つコンマ区切りファイル内の完全な行を照合し、各フィールドを後方参照にキャプチャします。CSV 行をより多いまたはより少ないフィールドと一致させるには、キャプチャ グループを複製または削除するだけです。

^("[^"\r\n]*"|[^,\r\n]*),("[^"\r\n]*"|[^,\r\n]*),("[^"\r\n]*"|[^,\r\n]*)$
于 2012-08-27T10:36:09.967 に答える