我有一个看起来像这样的字符串:
'som,ething', another, 'thin#'g', 'her,e', gggh*
我试图将它拆分为不在元素中的逗号,如下所示:
'som,ething'
another
'thin#'g'
'her,e'
gggh*
我正在使用parse_line(q{,}, 1, $string)
但是当字符串中包含单引号时似乎失败了。我有什么遗失的吗?
答案 0 :(得分:1)
#!/usr/bin/perl
use strict;
use warnings;
my $string = q{'som,ething', another, 'thin'g', 'her,e', gggh*};
my @splitted = split(/,(?=\s+)/, $string);
print $_."\n" foreach @splitted;
输出:
'som,ething'
another
'thin'g'
'her,e'
gggh*
答案 1 :(得分:0)
您似乎正在尝试解析以逗号分隔的值。答案是使用Text::CSV_XS,因为它可以处理您可能在数据中找到的各种奇怪案例。见How can I parse quoted CSV in Perl with a regex?
答案 2 :(得分:-1)
使用my $line = "'som,ething', another , 'thin#'g', 'her,e' , gggh*";
my @list = $line =~ /\s*('[^#']*(?:#.[^#']*)*+'|[^,]+(?<=\S))\s*/g;
print join("|", @list);
不是可行的方法。如果您确定使用全局匹配对字符串进行了格式化,则更简单,例如:
(?<=\S)
(app.controller('MainCtrl', function($scope) {
$scope.Attachment = "something"
$scope.change = function () {
$scope.Attachment = "other";
}
});
仅用于修剪右侧的项目)