Как разбить и разобрать строку по nth da sh in python - PullRequest
0 голосов
/ 11 февраля 2020

Я новичок в python, у меня есть назначение о разборе строки через дефис (da sh -).

Заданная строка: db / 100749 / 2020-01-06 /100749-2020-01-06-20-25-43-2020-01-06-20-40-43.jpg Мне нравится разбирать 20-25-43 и 20-40-43 из заданной строки и в конечном итоге вернуть строку или число 202543 и 204043

Я пытался использовать что-то вроде: .split ("-", 5) [: - 1] но я не мог понять, что 5 и -1 делает

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Вы можете сделать это красиво с помощью регулярных выражений. Когда также передаются дата и идентификатор (как, я полагаю, строки), вы можете просто использовать rf строку:

import re

search_string = 'db/100749/2020-01-06/100749-2020-01-06-20-25-43-2020-01-06-20-40-43.jpg'

def get_numbers(date,identifier):
    regex = rf'{identifier}-{date}-(\d+-\d+-\d+)-{date}-(\d+-\d+-\d+).jpg'
    return re.findall(regex, search_string)

print(get_numbers('2020-01-06', '100749'))

Вывод:

[('20-25-43', '20-40-43')]
0 голосов
/ 11 февраля 2020

Эта задача звучит так, как будто это возможно при использовании функции split и среза / расширенного индексирования (синтаксис "a string"[1:4]). Прочитайте, что функции делают в Python документах (связанных с ними). ​​

Подсказка: вы можете получить доступ к номеру n в строке с помощью "a string"[n], а использование отрицательных индексов приведет к обратному отсчету от конец строки.

>>>"abcd"[-1]
'd'

Кроме того, вы также можете использовать регулярное выражение (которое часто используется и в других местах и ​​является хорошим инструментом для изучения, как использовать). Regex также документирован .

...