【问题标题】:Split a string in Perl在 Perl 中拆分字符串
【发布时间】:2013-11-08 02:43:58
【问题描述】:

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

String = "What are you doing these days?"

Split1 - What 
Split2 - are 
Split3 - you 
Split4 - doing these days?

我希望将前 n 个单词分开,并将该行的其余部分放在一个单独的变量中。

有没有办法做到这一点?我没有可以使用的通用分隔符。任何帮助表示赞赏!谢谢。

【问题讨论】:

  • perldoc -f split。请注意论点.. 其中讨论的特殊" " 模式也可能适用。

标签: string perl split


【解决方案1】:

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;

【讨论】:

  • 完美!效果很好。非常感谢:)
【解决方案2】:
($string1, $string2, $string3, $rest) = split (/ /, $instring, 4);

【讨论】:

    【解决方案3】:

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

    $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");
    }
    

    【讨论】:

    • Wayyyy 不够懒。
    猜你喜欢
    • 2013-07-07
    • 2012-10-13
    • 2012-07-30
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2013-05-28
    相关资源
    最近更新 更多