У меня есть база данных с несколькими полями, содержащими значения, разделенные запятыми. Мне нужно разделить эти поля в Perl, что достаточно просто, за исключением того, что за некоторыми значениями следуют вложенные CSV, содержащиеся в скобках, которые я не хочу разделять.
Пример:
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 , которое не дает результатов:
#!/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;