特定の用語がハッシュキーに含まれているかどうか、ハッシュ値でタグ付けされているかどうかを確認しようとしています。私のコードは完全一致を識別しますが、用語がわずかに異なる場合は失敗します。また、完全一致の場合、コードは一致した用語に、関連する値ではなくすべての値をタグ付けします。
%Drugs = ('tamoxifen' => tablet,
'docotaxel' => capsule,
'5-hydroxycin' => IDK,);
$sentence="tamoxifen 4-hydroxytamoxifen tamoxifen-incoded pre-docotaxel Drugs";
@sentence=split/ /,$sentence;
@array=();
foreach $word(@sentence)
{
chomp $word;
for $keys(keys %Drugs)
{
if($Drugs{$word})
{
$term="<$Drugs{$keys}>$word<$Drugs{$keys}>";
push(@array,$term);
}
elsif($word=~/.*$Drugs{$keys}$/i)
{
$term="<$Drugs{$keys}>$word<$Drugs{$keys}>";
push(@array,$term);
}
}
foreach $Bio(@array)
{
print "$Bio\n";
}
出力文が欲しい:
<tablet>tamoxifen</tablet> <tablet>4-hydroxytamoxifen</tablet> <tablet>tamoxifen-incoded<tablet> <capsule>pre-docotaxel<capsule> Drugs.(Here Drugs didn't match and hence it is left untagged)