def _find_and_replace(self, date_string, captures):
<EOL>cloned_replacements = copy.copy(REPLACEMENTS)  <EOL>for tz_string in captures.get("<STR_LIT>", []):<EOL><INDENT>cloned_replacements.update({tz_string: "<STR_LIT:U+0020>"})<EOL><DEDENT>date_string = date_string.lower()<EOL>for key, replacement in cloned_replacements.items():<EOL><INDENT>date_string = re.sub(<EOL>r"<STR_LIT>" + key + r"<STR_LIT>",<EOL>replacement,<EOL>date_string,<EOL>flags=re.IGNORECASE,<EOL>)<EOL><DEDENT>return date_string, self._pop_tz_string(sorted(captures.get("<STR_LIT>", [])))<EOL>
:warning: when multiple tz matches exist the last sorted capture will trump
:param date_string:
:return: date_string, tz_string