private Town xzqhTown(String name, String parent, String content,
			int pattern) {
		Town town = new Town();
		town.setName(name);
		town.setParent(parent);

		boolean vilSpec = false;

		switch (pattern) {
		case XzqhTidy.PATTERN_WAVE:
			content = content.replaceAll("[【】］［]", " ");
			String[] matchArray = content.split("\\s～[ 0-9]+");
			for (int i = 1; i < matchArray.length; i++) {
				String[] unit = matchArray[i].split("\\s");
				String village = unit[0].trim();
				if (!NameRule.matchGeneralVillageNaming(village)) {
					vilSpec = true;
				}
				town.appendVillage(village);
			}
			break;
		case XzqhTidy.PATTERN_DIGIT:
			content = content.replaceAll("[【】］［]", " ");
			String[] villageArray = content.split("\\s*\\d{12}[ 0-9]*");
			for (int i = 1; i < villageArray.length; i++) {
				String village = villageArray[i].split("\\s+")[0].trim();
				if (!NameRule.matchGeneralVillageNaming(village)) {
					vilSpec = true;
				}
				town.appendVillage(village);
			}
			break;

		default:
			break;
		}

		if (!NameRule.matchGeneralTownNaming(name)) {
			town.setLevelFlag(TownConstants.NAMING_SPECTOWN);
		} else if (vilSpec) {
			town.setLevelFlag(TownConstants.NAMING_SPECVIL);
		} else {
			town.setLevelFlag(TownConstants.NAMING_STANDARD);
		}

		return town;
	}