我有一个包含逗号分隔值的字段的数据库.我需要在Perl中拆分这些字段,这很简单,除了一些值后面跟着包含在括号中的嵌套CSV,我不想拆分.
例:
recycling, environmental science, interdisciplinary (e.g., consumerism, waste management, chemistry, toxicology, government policy, and ethics), consumer education
Run Code Online (Sandbox Code Playgroud)
拆分","给了我:
recycling
environmental science
interdisciplinary (e.g.
consumerism
waste management
chemistry
toxicology
government policy
and ethics)
consumer education
Run Code Online (Sandbox Code Playgroud)
我想要的是:
recycling
environmental science
interdisciplinary (e.g., consumerism, waste management, chemistry, toxicology, government policy, and ethics)
consumer education
Run Code Online (Sandbox Code Playgroud)
任何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;
Run Code Online (Sandbox Code Playgroud)
试试这个:
my $s = q{recycling, environmental science, interdisciplinary (e.g., consumerism, waste management, chemistry, toxicology, government policy, and ethics), consumer education};
my @parts = split /(?![^(]+\)), /, $s;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1984 次 |
最近记录: |