拆分字符串

时间:2016-01-19 17:00:26

标签: perl

我有这样的字符串:

dcast(data, student + class ~ test, value.var='score')

我想将点左边的字符(即in.a+in.b=in.c a)放在一个列表的左侧,另一个字符放在右边 - 另一个列表中的手边(即b)。你能帮我解释一下代码吗?

c

注意:"等于"操作员将在那里,但左侧或右侧可以有任意数量的字符。所以我只想将#!/usr/bin/perl use strict; use warnings; my $string="in.a+in.b=in.c"; my @chars=split("=",$string); print "First: @chars"; 旁边的字符放在一个列表中。

3 个答案:

答案 0 :(得分:2)

使用正则表达式从左侧和右侧提取字符串。

git apply --ignore-space-change --ignore-whitepsace --whilespace=nowarn mypatch.patch

答案 1 :(得分:2)

my $string = "in.a+in.b=in.c";
my @parts = map { [ /\.(\w+)/g ] } split(/=/, $string);

左侧的位将在$parts[0]中,右侧的位将在$parts[1]中。这是结果的Data::Dumper表示:

$VAR1 = [
          [
            'a',
            'b'
          ],
          [
            'c'
          ]
        ];

这是一个用法示例:

print "Left-hand side: @{$parts[0]}\n";
print "Right-hand side: @{$parts[1]}\n";

输出:

Left-hand side: a b
Right-hand side: c

答案 2 :(得分:0)

my ($lhs, $rhs) = split(/=/, $string);
my @lhs_leaves = $lhs =~ /\.(\w+)/g;
my @rhs_leaves = $rhs =~ /\.(\w+)/g;