我有这样的字符串:
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";
旁边的字符放在一个列表中。
答案 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;