首先,這是一項家庭作業。我用正則表達式很困難,而且我卡住了。Perl - 使用正則表達式匹配哈希鍵或值中的輸入
這是我到目前爲止的代碼,我有用戶指定一個文件名,如果它存在,填充作爲鍵的名稱和電話號碼作爲值的散列。
#!/usr/bin/perl
use strict;
print "\nEnter Filename: ";
my $file = <STDIN>;
chomp $file;
if(!open(my $fileName, "<", "$file"))
{
print "Sorry, that file doesn't exist!", "\n";
}
else
{
my %phoneNums;
while (my $line=<$fileName>)
{
chomp($line);
(my $name,my $number) = split /:/, $line;
$phoneNums{$name} = $number;
}
print "Read in the file!", "\n\n";
print "Enter search: ";
my $input = <STDIN>;
chomp $input;
#HERE IS WHERE I'M LOST
}
print "\n";
這是我堅持的部分:
允許用戶輸入搜索字符串。 使用與手機相同的樣式來查找匹配。搜索字符串中的任何個人 字符都可以與 鍵中的任何其他字符相匹配,這意味着搜索字符串中的'2'可以與聯繫人列表中的'2','A','B'或'C'匹配。匹配可能發生在聯繫人姓名或電話號碼中。要進行匹配,搜索字符串中的每個字符必須按順序出現在聯繫信息中,但不一定要在其他每個字符旁邊出現。例如,搜索字符串「86」(基本上與搜索字符串「TM」或「NU」相同)將匹配「TOM」而不匹配「母親」。每個手機按鍵 特點: 0, 1, 2ABC, 3DEF, 4GHI, 5JKL, 6MNO, 7PQRS, 8TUV, 9WXYZ
我只是我被困在究竟如何使所有這些角色類和任何幫助都非常感謝。
你想做的事情不清楚。顯示輸入值意味着你在散列或文件中有什麼,以及你想如何得到輸出,對你得到答案和爲我們提供正確的解決方案會更有幫助。 – serenesat