我有一个这样的字符串:"abc" "cd - e"
。我需要将其拆分为以下两个字符串:
"abc"
"cd - e"
我在Perl中尝试了几个选项,但无法满足我需要的选项。有人可以指导我吗?感谢。
答案 0 :(得分:2)
my @strings = $input =~ /"[^"]*"/g;
答案 1 :(得分:2)
您可以拆分前面有"
后跟"
的空格:
use strict;
use warnings;
my $s = '"abc" "cd - e"';
my @matches = split /(?<=")\s+(?=")/, $s;
# "abc"
# "cd - e"
答案 2 :(得分:0)
如果你的输入特别有你建议的两个字符串(而不是任意 n 字符串),那么这应该有效:
$s = '"abc" "cd - e"';
$s =~ /(".*") (".*")/;
$s1 = $1;
$s2 = $2;
或者,您可以将.
替换为&#34;非引用&#34;,即[^"]
:
$s =~ /("[^"]*") ("[^"]*")/;
$s1 = $1;
$s2 = $2;