예제 #1
0
 def match(self, text, name):
     for sub_pattern in self.options:
         try:
             match, rest = sub_pattern(text)
             result = [name]
             if utils.deep_bool(match):
                 _add_match_to_result(result, match)
             else:
                 result.append("")
             return (result, rest)
         except NoPatternFound:
             continue
     raise NoPatternFound
예제 #2
0
 def match(self, text, name):
     result = [name]
     rest = text
     match_made = False
     while rest:
         for sub_pattern in self.options:
             try:
                 match, rest = sub_pattern(rest)
                 match_made = True
                 if utils.deep_bool(match):
                     _add_match_to_result(result, match)
                 break
             except NoPatternFound:
                 continue
         else:
             break
     if not match_made:
         raise NoPatternFound
     else:
         if result == [name]:
             result.append("")
         return (result, rest)