我有这样一个字符串:"abc" "cd - e"
。我需要把这个分成两个以下字符串:具有双引号和空格的Perl拆分字符串
-
"cd - e"
我试过在Perl的几个选项,但不能满足我需要的。有人可以指导我吗?谢谢。
我有这样一个字符串:"abc" "cd - e"
。我需要把这个分成两个以下字符串:具有双引号和空格的Perl拆分字符串
"cd - e"
我试过在Perl的几个选项,但不能满足我需要的。有人可以指导我吗?谢谢。
my @strings = $input =~ /"[^"]*"/g;
您可以在这是由一个"
前面和后面一个"
空格分开:
use strict;
use warnings;
my $s = '"abc" "cd - e"';
my @matches = split /(?<=")\s+(?=")/, $s;
# "abc"
# "cd - e"
良好的学习......它完美:-) – user2705120 2015-03-13 20:27:41
如果你的输入会专门有两个字符串作为你的建议(而不是任意ñ串),那么这应该工作:
$s = '"abc" "cd - e"';
$s =~ /(".*") (".*")/;
$s1 = $1;
$s2 = $2;
或者你可以让它多了几分安全与“取代.
没有正引号”,即[^"]
:
$s =~ /("[^"]*") ("[^"]*")/;
$s1 = $1;
$s2 = $2;
也:http://perldoc.perl.org/Text/ParseWords.html – jm666 2015-03-13 20:11:59