package com.dbdeploy.scripts; import com.dbdeploy.exceptions.UnrecognisedFilenameException; import java.util.regex.Matcher; import java.util.regex.Pattern; public class FilenameParser { private final Pattern pattern; public FilenameParser() { pattern = Pattern.compile("(\\d+).*"); } public long extractIdFromFilename(String filename) throws UnrecognisedFilenameException { Matcher matches = pattern.matcher(filename); if (!matches.matches() || matches.groupCount() != 1) throw new UnrecognisedFilenameException("Could not extract a change script number from filename: " + filename); return Long.parseLong(matches.group(1)); } }