请教单词串分解时的问题!!!

请教单词串分解时的问题!!!

请教单词串分解时的问题!!!
小弟在学习单词分解时遇到一个问题,不知道怎么解决。。
@charlist = splist(/ /, $line);

用上面的以空格为基本来分单词,这里遇到个词组"this is“用""号分好,表示是一个完整的不需要用其中的空格分开。

a name "this is" test

如果用""号来标识一个不需要分开的词组,这该怎么做呢?小弟不才。。


txt = qq~s 在在 b "s s s s" d在d "厅 厅 局 级 要" 一~;
my @res = split /(?<!\"\w)\s(?!\w\")/, $txt;

print join "\n",@res;

使用了如上的分解,可还是有问题。。




   

能不能对split后的结果分析,读到有一个string是以" 开头的情况,就读下一个元素,直到找到一个string是以" 结尾的,在把这个几个元素合并起来,持续这样的处理。

另外可能需要用正则表达式了,这方面我不熟
是的这个问题不知道该用什.
是的这个问题不知道该用什么方法解决
求高人指点.
求高人指点.
试了N久, 如果一定要用spl.
试了N久, 如果一定要用split的话, 这样:

@charlist = split(/("[^"]*"| )/, $line);
print join("+", @charlist), "\n\n";
结果为:
s+ +在在+ +b+ ++"s s s s"++ +d在d+ ++"厅 厅 局 级 要"++ +一
然后删除为空和为空格的元素.
一句正则提取
一句正则提取:

sub splitSentence {
my $str = 's 在在 b "s s s s" d在d "厅 厅 局 级 要" 一';
my @items = $str =~ /([^"\s]+|"[^"]+")(?=\s+|$)/g;
print join("\n", @items);
}

###########
s
在在
b
"s s s s"
d在d
"厅 厅 局 级 要"

###########