Perl 确定是否出现重复字符串
如何确定字符串a后面是否有重复的字符串。 例如:堆栈溢出,堆栈将为真,而作为helloworld,Random则不会 我试过: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
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:发布您尝试过的内容和输出。对于“堆栈溢出,堆栈跟踪”,应该返回什么?也就是说,如何定义重复字符串?