例如: -
我必须从多个网站上抓取地址。有时地址有重复的国家名称或地址。
$string1="No 3, 3rd street mumbai india 3rd street";
$string2="#3 1019 GM Amsterdam Funda Real Estate BV 1019 GM Amsterdam The Netherlands";
我需要删除给定字符串中n个单词的组。 在给定的 $ string1包含"第三街"作为重复。我需要删除。 $ string2包含" 1019 GM Amsterdam"作为重复。
输出将是......
$string1="No 3, 3rd street mumbai india";
$string2="#3 1019 GM Amsterdam Funda Real Estate BV The Netherlands";
答案 0 :(得分:2)
我尝试了一些暴力方法尝试以下
use warnings;
use strict;
use POSIX;
my $string1="aaa bbb aaa ccc aaa bbb";
#my $string1="fff ggg hhh ddd jjj fff ggg hhh";
#my $string2 = "fff ggg hhh ddd jjj fff ggg hhh fff ggg mmm";
my $string1_count = () = $string1=~m/\s+/g;
my $string_divide = ceil($string1_count/2);
for(my $i = $string_divide; $i > 1; $i--)
{
last if($string1 =~s/((?:\w+\s?){$i}).+\K\1//g);
}
print "$string1\n";
答案 1 :(得分:1)
试试这个:
my $string1="aaa bbb aaa ccc aaa bbb";
my $string2="fff ggg hhh ddd jjj fff ggg hhh";
my @split = split / /, $string1;
my @unique = keys {map {$_ => 1} @split};
my $string3 = join " ", sort @unique;
print $string3;