【发布时间】:2015-05-16 10:52:44
【问题描述】:
我有一个这样的字符串:"abc" "cd - e"。我需要将其拆分为以下两个字符串:
"abc""cd - e"
我在 Perl 中尝试了几个选项,但无法满足我的需要。有人可以指导我吗?谢谢。
【问题讨论】:
我有一个这样的字符串:"abc" "cd - e"。我需要将其拆分为以下两个字符串:
"abc""cd - e"我在 Perl 中尝试了几个选项,但无法满足我的需要。有人可以指导我吗?谢谢。
【问题讨论】:
my @strings = $input =~ /"[^"]*"/g;
【讨论】:
您可以在前面有 " 后跟 " 的空格上进行拆分:
use strict;
use warnings;
my $s = '"abc" "cd - e"';
my @matches = split /(?<=")\s+(?=")/, $s;
# "abc"
# "cd - e"
【讨论】:
如果您的输入将特别包含您建议的两个字符串(而不是任意 n 字符串),那么这应该可以:
$s = '"abc" "cd - e"';
$s =~ /(".*") (".*")/;
$s1 = $1;
$s2 = $2;
或者您可以通过将. 替换为“非引号”来使其更安全,即[^"]:
$s =~ /("[^"]*") ("[^"]*")/;
$s1 = $1;
$s2 = $2;
【讨论】: