TransWikia.com

Написать регулярное выражение python помогите

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 что должен достать обвел жирным.

2 Answers

Если я правильно понял задачу, то что-то такое должно получиться:

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)

Тест https://regexr.com/58r22

"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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP