Perl 确定是否出现重复字符串

Perl 确定是否出现重复字符串,perl,Perl,如何确定字符串a后面是否有重复的字符串。 例如:堆栈溢出,堆栈将为真,而作为helloworld,Random则不会 我试过: use strict; my @strings = ("Hello World, Hello", "How are you, are"); foreach my $duplicate (@strings) { my @split = split(/,/, $duplicate); my $a = @split[0]; my $b = @split[1

如何确定字符串a后面是否有重复的字符串。 例如:堆栈溢出,堆栈将为真,而作为helloworld,Random则不会

我试过:

use strict;
my @strings = ("Hello World, Hello", "How are you, are");
foreach my $duplicate (@strings) {
   my @split = split(/,/, $duplicate);

   my $a = @split[0];
   my $b = @split[1];    
   if ($a =~ m/$b/) {
          print "Duplicate\n";
       } else {
          print "True\n";
       }
}

任何帮助都可以使用以下正则表达式:

/(.+).*\1/

但请注意,即使是空格也可以是重复的字符串。此外,任何东西都可以在字符串及其重复之前和之后。您可能需要调整表达式以满足您的需要。

您的脚本工作正常,只需按以下方式更改拆分:

my @split = split(/\s*,\s*/, $duplicate);

Daveid:发布您尝试过的内容和输出。对于“堆栈溢出,堆栈跟踪”,应该返回什么?也就是说,如何定义重复字符串?