Most effecient way of generating a table of allowed maps from a filter?

I bet that was confusing. Here’s a better explanation:

I’m making a map vote system. First, I want to generate a table of allowed maps, from a set table of prefixes. Here’s what I have so far:

local allowedmaps = {"^zs_", "^cs_", "^de_", "^zm_", "^zh_"}
availmaps = {}

function init()
	print("Filling availmaps table...")
	local maps = file.Find( "../maps/*.bsp" )
	print("Found a total of "..#maps.." maps in the maps folder.")
	for _, map in ipairs( maps ) do
		map = map:sub( 1, -5 ) -- Take off .bsp
		--if allowedmaps[ map ] then
		if string.find(map, allowedmaps) then
			table.insert( availmaps, map )
			print("Found available map named "".")
	print("Found "..#availmaps.." available maps!")

hook.Add("InitPostEntity", "MapStartTrigger", init)

So far, it doesn’t work. Is there any quick way to have string.find automatically check the allowed maps table against the map string, or do I have to do another for function?