Closed dveselov closed 4 years ago
Такое предполагается делать на пост обработке.
from yargy import Parser, rule
from yargy.interpretation import fact, attribute
Objs = fact('Objs', [attribute('names').repeatable(), 'type'])
class Objs(Objs):
def unfold(self):
for name in self.names:
yield name, self.type
OBJS = rule(
rule('name').interpretation(Objs.names).repeatable(),
rule('type').interpretation(Objs.type)
).interpretation(Objs)
parser = Parser(OBJS)
text = 'name name name type'
match = parser.match(text)
list(match.fact.unfold())
[('name', 'type'), ('name', 'type'), ('name', 'type')]
Например, есть такой текст:
Хотелось бы иметь возможность извлекать название каждого моста по отдельности: