【发布时间】:2016-02-01 18:47:27
【问题描述】:
首先,这是一项家庭作业。我在使用正则表达式时遇到了困难,我被困住了。
这是我到目前为止的代码,我让用户指定一个文件名,如果存在,则填充名称的哈希作为键,电话号码作为值。
#!/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”但不匹配“MOTHER”。 每个电话键上的字符: 0, 1、 2ABC, 3DEF, 4GHI, 5JKL, 6MNO, 7PQRS, 8TUV, 9WXYZ
我只是被困在如何准确地制作所有这些字符类,非常感谢任何帮助。
【问题讨论】:
-
你想做什么还不清楚。显示输入值意味着您在哈希或文件中拥有的内容以及您希望如何获得输出,这将更有利于您获得答案并为我们提供正确的解决方案。
标签: regex string perl search data-structures