Определите, следует ли повторяющаяся строка - PullRequest
0 голосов
/ 02 февраля 2012

Как я могу определить, следует ли повторяющаяся строка за строкой А. Например: Переполнение стека, стек будет истинным, где, как Hello World, Случайный не будет.

Я пробовал:

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

Любая помощь приветствуется

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Вы можете использовать это регулярное выражение:

/(.+).*\1/

Но обратите внимание, что даже пробел может быть повторяющейся строкой. Кроме того, все может предшествовать и следовать за строкой и ее повторением. Возможно, вам придется изменить выражение в соответствии с вашими потребностями.

0 голосов
/ 02 февраля 2012

Ваш скрипт работает не так плохо, просто измените разделение следующим образом:

my @split = split(/\s*,\s*/, $duplicate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...