#python #regex #string #templates
#python #регулярное выражение #строка #шаблоны
Вопрос:
У меня есть файл, полный данных в определенном формате, я хочу заполнить этими данными свою собственную структуру данных
например, у меня может быть такой файл:
John - Smith : 0123
children:
Sam
Kim
Я хочу что-то сделать с этой строкой, чтобы извлечь данные, например, в
firstName = "John"
lastName = "Smith"
number = "0123"
children = ['Sam', 'Kim']
Я надеюсь, что есть более простой способ, чем использование разделителей..
Ответ №1:
Вот решение для регулярных выражений:
>>> import re
>>> data = 'John - Smith : 0123nchildren: n Samn Kim'
>>> match = re.match(r'(w ) - (w ) : (d ).*?children:(.*)', data, re.S)
>>> match.groups()
('John', 'Smith', '0123', ' n Samn Kim')
Затем вы можете назначить группы своим переменным:
>>> firstName, lastName, number = match.groups()[:3]
>>> children = [c.strip() for c in match.group(4).strip().split('n')]
и результат…
>>> firstName
'John'
>>> lastName
'Smith'
>>> number
'0123'
>>> children
['Sam', 'Kim']