我正在尝试在Perl中拆分字符串,如下所示: -
String = "What are you doing these days?"
Split1 - What
Split2 - are
Split3 - you
Split4 - doing these days?
我想分开前n个单词,并将其余部分放在一个单独的变量中。
有没有办法做到这一点?我没有可以使用的通用分隔符。任何帮助表示赞赏!谢谢。
答案 0 :(得分:7)
Perl的分割有一个极限参数,似乎正是你想要的。要拆分前$ 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;
答案 1 :(得分:3)
($string1, $string2, $string3, $rest) = split (/ /, $instring, 4);
答案 2 :(得分:0)
您可以使用以下正则表达式根据您的要求分割字符串
$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");
}