Найти - Пользователи
Полная версия: Помогите с регуляркой
Начало » Python для новичков » Помогите с регуляркой
1
Scorp_1978
Есть вот такой текст
как id и ls получить?
 text = 'pu_011073143275226_13701690559'
id = re.compile('???????????????')
ls = re.compile('???????????????')

всегда только цифры
id=011073143275226
ls=13701690559
ZerG
 text = 'pu_011073143275226_13701690559'
print(text.split("_"))
Scorp_1978
ZerG, спасибо
py.user.next
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'
>>>
Но в том-то и прикол, что с разделителями не всегда везёт и может быть что-то разное, много всего и всё вперемешку. Тогда регулярные выражения и пошаговый разбор помогут в большинстве случаев. Один шаг разбора провёл - переходишь на второй шаг разбора, второй шаг разбора провёл - переходишь на третий шаг разбора, и так далее. На каждом шаге можно применять отдельные способы разбора, в том числе и регулярные выражения. И так постепенно приходишь к правильному и точному результату. Итеративный подход. Как будто слоями снимаешь всякий мусор ненужный со строки. Берёшь камень, в котором скульптура внутри спрятана, и откалываешь от него все ненужные кусочки, пока в нём не проявится эта скульптура.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB