Match a string against the template.

        If the string matches the template, return a dict mapping template
        parameter names to converted values, otherwise return ``None``.

        >>> t = Template('Hello my name is {name}!')
        >>> t.match('Hello my name is David!')
        {'name': 'David'}
        >>> t.match('This string does not match.')

def match(self, string):
        """Match a string against the template.

        If the string matches the template, return a dict mapping template
        parameter names to converted values, otherwise return ``None``.

        >>> t = Template('Hello my name is {name}!')
        >>> t.match('Hello my name is David!')
        {'name': 'David'}
        >>> t.match('This string does not match.')
        """
        m = self.regex.match(string)
        if m:
            c = self.type_converters
            return dict((k, c[k](v) if k in c else v)
                        for k, v in m.groupdict().iteritems())
        return None