繁体   English   中英

分割字符串

[英]Splitting strings

我有这样的字符串:

in.a+in.b=in.c

我想在一个列表的左侧将圆点旁边的字符(即ab )放在另一个列表中,而将另一个字符的右侧(即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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM