用法:
新建文件xx.rb内容为:
module ModuleName
def fn
p "module cz"
end
end
以获得module名为例:
Dir["xx.rb"].each do |file|
name1 = File.read(file).scan(/module (.*)/)
p name1
name2 = File.read(file).match(/module (.*)/)
p name2
name3 = File.read(file).scan(/hh (.*)/)
p name3
name4 = File.read(file).match(/hh (.*)/)
p name4
end
运行结果为:

区别
scan:
查找全部匹配的内容,返回一个数组。
如果未匹配到,返回[]。
返回结果:()匹配到的内容。
match:
只匹配第一次,返回为MatchData类型。
如果未匹配到,返回nil。
返回结果:完整匹配部分+()匹配到的内容。
本文介绍了一种在Ruby中使用scan和match方法从文件中提取模块名称的技巧。通过实例对比,展示了scan方法用于查找所有匹配项并返回数组,而match方法仅匹配首次出现并返回MatchData类型。
619

被折叠的 条评论
为什么被折叠?



