私はカンマで区切られた値を含むいくつかのフィールドを持つデータベースを持っています。私はこれらのフィールドをPerlで分割する必要があります。ただし、分割したくない括弧で囲まれたネストされたCSVが値の一部に続くことを除けば、簡単です。角かっこ内の場合を除き、コンマで区切られたPerlの分割リスト?
例:
recycling, environmental science, interdisciplinary (e.g., consumerism, waste management, chemistry, toxicology, government policy, and ethics), consumer education
の分割 "" 私に与える:
recycling
environmental science
interdisciplinary (e.g.
consumerism
waste management
chemistry
toxicology
government policy
and ethics)
consumer education
私が欲しいものです:
recycling
environmental science
interdisciplinary (e.g., consumerism, waste management, chemistry, toxicology, government policy, and ethics)
consumer education
任意のPerlの正規表現(perts)が手を貸すことができます?
私は結果を返しません似たSO postで見つかった正規表現の文字列を変更しようとしている:
#!/usr/bin/perl
use strict;
use warnings;
my $s = q{recycling, environmental science, interdisciplinary (e.g., consumerism, waste management, chemistry, toxicology, government policy, and ethics), consumer education};
my @parts = $s =~ m{\A(\w+) ([0-9]) (\([^\(]+\)) (\w+) ([0-9]) ([0-9]{2})};
use Data::Dumper;
print Dumper \@parts;
これまでに何を試しましたか?あなた自身で最初に努力してから、あなたがしたことを示す質問をしてください。 –
正規表現を使用してネストされた式を解析することはできません。本格的なパーサが必要です。 – Ether
[Text :: CSV](http://search.cpan.org/perldoc?Text::CSV)を見て、必要なことをするためにそれを微調整できるかどうかを見てください。 – TLP