Извлечь шаблоны слов из строки - PullRequest
1 голос
/ 18 апреля 2020

Есть ли быстрый способ извлечь пары аргумент-значение из строки ниже в Python?

s = '[ARG0: elephants] were [ARGM-TMP: first] [V: walk] [ARGM-DIR: up]'

Выходные данные имеют следующий вид:

ARG0 = elephants
ARGM-TMP = first
ARGM-DIR = up

Ответы [ 2 ]

3 голосов
/ 18 апреля 2020

Вы можете найти все пары arg / value, используя re.findall, и построить словарь, разбив строки:

import re
s = '[ARG0: elephants] were [ARGM-TMP: first] [V: walk] [ARGM-DIR: up]'

d = re.findall(r'\[(ARG.*?\:*?)]', s)

dict([i.split(': ') for i in d])
# {'ARG0': 'elephants', 'ARGM-TMP': 'first', 'ARGM-DIR': 'up'}
1 голос
/ 18 апреля 2020

Читать на регулярное выражение в python. И вы можете использовать строку регулярного выражения, как показано ниже.

\[(?P<key>[a-zA-Z0-9-_]+): (?P<value>[a-z]+)\]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...