String 在Perl中拆分字符串

String 在Perl中拆分字符串,string,perl,split,String,Perl,Split,我试图在Perl中拆分一个字符串,如下所示:- String = "What are you doing these days?" Split1 - What Split2 - are Split3 - you Split4 - doing these days? 我想把前n个单词分开,把行的其余部分放在一个单独的变量中 有没有办法做到这一点?我没有可以使用的通用分隔符。感谢您的帮助!谢谢 您可以使用以下正则表达式根据需要拆分字符串 $ip_tring = "What are you

我试图在Perl中拆分一个字符串,如下所示:-

String = "What are you doing these days?"

Split1 - What 
Split2 - are 
Split3 - you 
Split4 - doing these days?
我想把前n个单词分开,把行的其余部分放在一个单独的变量中


有没有办法做到这一点?我没有可以使用的通用分隔符。感谢您的帮助!谢谢

您可以使用以下正则表达式根据需要拆分字符串

$ip_tring = "What are you doing these days?";
if($ip_tring =~ m/(\S+)\s(\S+)\s(\S+)\s(.*)/)
{
    print("1=$1,2=$2,3=$3,4=$4\n");
}
else
{
    print("no match...\n");
}

Perl的split有一个limit参数,它似乎正是您想要的。要拆分前$n个单词并将其余单词放在一起,请使用$n+1作为限制。结果最多为$n+1个元素:

my $n = 3;
my $string = "What are you doing these days?";
my @words = split / /, $string, $n+1;
print "$_\n" for @words;

看见注意这些论点。。这里讨论的特殊模式也可能适用。Wayyy不够懒。太好了!效果很好。非常感谢你:
($string1, $string2, $string3, $rest) = split (/ /, $instring, 4);