Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2023 19:28:07

Scorp_1978
Зарегистрирован: 2023-02-03
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с регуляркой

Есть вот такой текст
как id и ls получить?

 text = 'pu_011073143275226_13701690559'
id = re.compile('???????????????')
ls = re.compile('???????????????')

всегда только цифры
id=011073143275226
ls=13701690559

Отредактировано Scorp_1978 (Окт. 21, 2023 19:29:12)

Офлайн

#2 Окт. 21, 2023 21:46:37

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите с регуляркой

 text = 'pu_011073143275226_13701690559'
print(text.split("_"))



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Окт. 22, 2023 04:25:41

Scorp_1978
Зарегистрирован: 2023-02-03
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с регуляркой

ZerG, спасибо

Офлайн

#4 Окт. 22, 2023 04:31:52

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9849
Репутация: +  853  -
Профиль   Отправить e-mail  

Помогите с регуляркой

Scorp_1978
Есть вот такой текст
как id и ls получить?
  
text = 'pu_011073143275226_13701690559'
id = re.compile('???????????????')
ls = re.compile('???????????????')
  
>>> import re
>>> 
>>> text = 'pu_011073143275226_13701690559'
>>> 
>>> pat = r'_(\d+)_(\d+)$'
>>> 
>>> match = re.search(pat, text)
>>> if match is not None:
...     text_id, text_ls = match.groups()
... 
>>> text_id
'011073143275226'
>>> text_ls
'13701690559'
>>>

Если повезло с разделителями, можно без регулярных выражений обойтись
  
>>> text = 'pu_011073143275226_13701690559'
>>> 
>>> text_id, text_ls = text.split('_')[1:]
>>> 
>>> text_id
'011073143275226'
>>> text_ls
'13701690559'
>>>
Но в том-то и прикол, что с разделителями не всегда везёт и может быть что-то разное, много всего и всё вперемешку. Тогда регулярные выражения и пошаговый разбор помогут в большинстве случаев. Один шаг разбора провёл - переходишь на второй шаг разбора, второй шаг разбора провёл - переходишь на третий шаг разбора, и так далее. На каждом шаге можно применять отдельные способы разбора, в том числе и регулярные выражения. И так постепенно приходишь к правильному и точному результату. Итеративный подход. Как будто слоями снимаешь всякий мусор ненужный со строки. Берёшь камень, в котором скульптура внутри спрятана, и откалываешь от него все ненужные кусочки, пока в нём не проявится эта скульптура.



Отредактировано py.user.next (Окт. 22, 2023 04:40:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version