0

我有以下内容:

dport = t.cmd("show ift").to_enum(:scan, /eth-\d/).map { Regexp.last_match }

结果,我得到以下信息:

[#<MatchData "eth-0">, #<MatchData "eth-1">, #<MatchData "eth-2">, #<MatchData "eth-3">, #<MatchData "eth-4">, #<MatchData "eth-8">]

好消息是这正是我所追求的;关于比赛。但是,我对如何前进感到有些困惑。我想查询用户并让用户选择一个特定的匹配项。有任何想法吗?提前感谢您为我提供的任何帮助。

4

1 回答 1

0

看起来您首先需要从每个 MatchData 对象中提取匹配的字符串,以呈现给用户,例如:

dport.each { |match| puts match[some_index] }

有关 MatchData 对象的更多信息,请参阅http://www.ruby-doc.org/core-1.9.3/MatchData.html

然后假设您使用命令行从用户获取输入使用gets() 方法:http ://www.ruby-doc.org/core-1.9.3/IO.html#method-i-gets

于 2012-09-18T22:12:12.583 回答