【求助】用split分割一段英文文章

【求助】用split分割一段英文文章

除去空格等标点符号,只保留单词,怎么写??
split /\W+/
好像还是有部分空格被统计进去了



QUOTE:
原帖由 anthony1983 于 2007-11-29 15:23 发表
好像还是有部分空格被统计进去了

你太懒了。
问人问题,还不给一段样文,说实话,除了我这么有闲心的,没人愿意帮你了。


QUOTE:
原帖由 放驴娃 于 2007-11-29 15:31 发表

你太懒了。
问人问题,还不给一段样文,说实话,除了我这么有闲心的,没人愿意帮你了。

好像是制表符没有被分割掉

比如
     Bytes from the converted string are written until
        the  end  of  the  string  or the number of bytes
        indicated  by  the  precision  specification   is
        reached. If the precision is omitted, it is taken
每一行前面都有若干制表符。
手工把这些制表符删掉后,就没有统计出空格数了~
$test1 = " Bytes from the converted string are ,written ,until";
@test2 = split(/\W+/, $test1);

print $test2[0],"\n";


$test2[0] 里的值是空格,也就是句首的空格没被分割掉

晕,哪位知道这个split怎么写
确实不清楚对于split的leading spaces如何弄掉.

其他方法到是很容易:
my $txt = q/
     Bytes from the converted string are written until
        the  end  of  the  string  or the number of bytes
        indicated  by  the  precision  specification   is
        reached. If the precision is omitted, it is taken
/;
my @words = $txt =~ /\w+/g;
map { print "[$_] " } @words;
这样可以吗?一个笨办法

$test1 = " Bytes from the converted string are ,written ,until";
@test2 = split(/\W+/, $test1);
shift @test2 unless $test2[0];
print "--$test2[0]--\n";


QUOTE:
原帖由 anthony1983 于 2007-11-29 15:07 发表
除去空格等标点符号,只保留单词,怎么写??

如果单词的定义是只可能由字母组成,那么
$str='abc d efg,;;:  hi';
$str=~s/[^A-Z]//gi;
print $str;
即可,不过这样的话,输出的结果不是变成所有的内容都并在一起了?