[英]Splitting strings
我有这样的字符串:
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";
注意: “等于”运算符将在此处,但左侧或右侧可以有任意数量的字符。 因此,我只想将字符放在.
在一个列表中。
使用正则表达式从左侧和右侧提取字符串。
#! /usr/bin/perl
use warnings;
use strict;
my $string = 'in.a+in.b=in.c';
my ($lhs, $rhs) = split /=/, $string;
my @left = $lhs =~ /\.(\w+)/g;
my @right = $rhs =~ /\.(\w+)/g;
print "Left: @left.\nRight: @right.\n";
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
my ($lhs, $rhs) = split(/=/, $string);
my @lhs_leaves = $lhs =~ /\.(\w+)/g;
my @rhs_leaves = $rhs =~ /\.(\w+)/g;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.