kal*_*kal 3 string perl extraction
我有这样的字符串
field1=1 field2=2 field3=abc
Run Code Online (Sandbox Code Playgroud)
我想把它作为
2,1,abc
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?我可以写一个小的C或Java程序来做这个,尝试我试图找到一个简单的方法在Perl中完成它.
use strict;
use warnings;
my $string = 'field1=1 field2=2 field3=abc';
my @values = ($string =~ m/=(\S+)/g);
print join(',', @values), "\n";
Run Code Online (Sandbox Code Playgroud)
#!/usr/bin/perl
use strict;
use warnings;
# Input string
my $string = "field1=1 field2=2 field3=abc";
# Split string into a list of "key=value" strings
my @pairs = split(/\s+/,$string);
# Convert pair strings into hash
my %hash = map { split(/=/, $_, 2) } @pairs;
# Output hash
printf "%s,%s,%s\n", $hash{field2}, $hash{field1}, $hash{field3}; # => 2,1,abc
# Output hash, alternate method
print join(",", @hash{qw(field2 field1 field3)}), "\n";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10275 次 |
| 最近记录: |