def matches_requirement(self, req):
<EOL>r = parse_requirement(req)<EOL>scheme = get_scheme(self.metadata.scheme)<EOL>try:<EOL><INDENT>matcher = scheme.matcher(r.requirement)<EOL><DEDENT>except UnsupportedVersionError:<EOL><INDENT>logger.warning('<STR_LIT>',<EOL>req)<EOL>name = req.split()[<NUM_LIT:0>]<EOL>matcher = scheme.matcher(name)<EOL><DEDENT>name = matcher.key   <EOL>result = False<EOL>for p in self.provides:<EOL><INDENT>p_name, p_ver = parse_name_and_version(p)<EOL>if p_name != name:<EOL><INDENT>continue<EOL><DEDENT>try:<EOL><INDENT>result = matcher.match(p_ver)<EOL>break<EOL><DEDENT>except UnsupportedVersionError:<EOL><INDENT>pass<EOL><DEDENT><DEDENT>return result<EOL>
Say if this instance matches (fulfills) a requirement.
:param req: The requirement to match.
:rtype req: str
:return: True if it matches, else False.