Stack Overflow на русском Asked by Dmitry Borov on November 10, 2021
Столкнулся с вопросом в написании регулярного выражения. Как-то затрагивал их, но уже все вылетело из головы, пробовал взяться – ничего не вышло. Помогите написать, чтобы доставало данные в формате:
возраст = "первые две цифры"
рост = "вторые три цифры"
вес = "третьи две цифры"
тренировки ="последняя одна цифра'
Вот входные данные :
"trukhina287 37/168cm/ 65/2TpeHupoBku/HeT FB anja01bez 29/156cm/65/3TpeH/re HeT nastya.ermakovaaa 23/170cm/62kr/2
TPeHupoBKU/HeT rB
Доставать должен примерно так :
"trukhina287 37/168cm/
65/2TpeHupoBku/HeT FB что должен достать обвел жирным.
Если я правильно понял задачу, то что-то такое должно получиться:
import re
sources_list = [
'trukhina287 37/168cm/ 65/2TpeHupoBku/HeT FB',
'anja01bez 29/156cm/65/3TpeH/re HeT',
'nastya.ermakovaaa 23/170cm/62kr/2 TPeHupoBKU/HeT rB'
]
for elem in sources_list:
age, height, weight, trainings = re.search(r'(d+)/(d+).*?/.*?(d+).*?/(d+)', elem).groups()
print(
f'возраст = {age}',
f'рост = {height}',
f'вес = {weight}',
f'тренировки = {trainings}',
sep='n'
)
# возраст = 37
# рост = 168
# вес = 65
# тренировки = 2
# возраст = 29
# рост = 156
# вес = 65
# тренировки = 3
# возраст = 23
# рост = 170
# вес = 62
# тренировки = 2
Answered by Namerek on November 10, 2021
Вот нахождение нужных цифр (они будут в группах):
(d{2})D*(d{3})D*(d{2})D*(d)
"trukhina287 37/168cm/ 65/2TpeHupoBku/HeT FB anja01bez 29/156cm/65/3TpeH/re HeT nastya.ermakovaaa 23/170cm/62kr/2 TPeHupoBKU/HeT rB
Что с именем непонятно - в описании его нет, но жирным выделено.
Answered by dIm0n on November 10, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP