我有两个来自两个不同服务器的文件。在这两个文件中显示了一些足球队的比赛。如你所知,可以用不同的名字来召唤足球队。 我想实现一个代码,可以在两个文件中识别相同的足球比赛,以便从文件中获取相同的变量,从另一个文件中获取其他变量。 例如,在一个文件中,我有一个名为
的匹配项Derry City - Bray Wanderers
在另一个文件中我有相同的匹配名称
Derry City - Bray
我该怎么做? 我没有想法。
答案 0 :(得分:1)
在c ++中:看看Boost.Regex和Boost.Tokenizer,因为他们会做你需要的。你需要的只是一个匹配的模式。
boost::regex("Bray[\s]*(Wanderers)?", boost::regex::icase);
或类似的东西 - 易于设置为一组单元测试。
答案 1 :(得分:1)
非常简单的替换团队别名的脚本。你需要自己填充别名,我做了一些。如果您有多个游戏,只要所有别名都交换为全名,哈希就会覆盖现有的游戏。
#!/usr/bin/perl
use strict;
use warnings;
my %games;
while (<DATA>) {
chomp;
my ($home, $guest) = split /\s*-\s*/, $_, 2;
$home = get_name($home);
$guest = get_name($guest);
$games{"$home - $guest"} = 1;
}
sub get_name {
# Return the full name for the team, if it exists, otherwise return the original
my %alias = (
'Derry' => 'Derry City',
'Brawlers' => 'Beijing',
'Dolphins' => 'Miami',
'Bray' => 'Bray Wanderers',
);
return $alias{$_[0]} // $_[0];
}
use Data::Dumper;
print Dumper \%games;
__DATA__
Derry City - Bray Wanderers
Derry City - Bray
Brawlers - Dolphins
Beijing - Miami
Miami - Beijing