Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 November 11

ДК

Даниил Кустов... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

A

Arlan in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
std::slavik
т.к. одна сложная регулярка скорей всего будет делать то же самое что и цепочка простых, но просто это записано короче
регулярки кстати легко могут повесить программу
Agent of chaos (если что это к твоему статусу))
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Даниил Кустов
((?=.+[A-Fa-f]+.+)(?=.+\d*?.+))?(?(1)[A-Fa-f0-9]+|[^0-9\s]+)
читать я это конечно же не буду
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
(если ты конечно мне за это не заплатишь)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
за деньги я хоть в рот кобре дам
вопрос за какие
источник

A

Arlan in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
рынок решает(
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
с регулярками обычно алгоритм такой
как в TDD
пишешь тесты из примеров которые смог сам собрать
пишешь регулярку
добиваешься чтобы она проходила тесты
выкатываешь в прод
в некоторых случаях регулярка некорректно отрабатывает
логгируешь эти случаи
добавляешь на их основе тесты
правишь регулярку
выкатываешь в прод
и тд
источник

ДК

Даниил Кустов... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Теперь осталось сделать так
источник

ДК

Даниил Кустов... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
чтобы findall отдавал только вторую группу, а первую нет
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Даниил Кустов
чтобы findall отдавал только вторую группу, а первую нет
источник

ДК

Даниил Кустов... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Та проблема в том, что findall список кортежей отдает
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
не претендую на идеал, но я примерно так делаю
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
def get_vk_audio_owner_id(link):
   link = re.sub('%2F', '/', link)
   res = re.search("(^https://)?(m\.)?(vk\.com/)(.*)(audios(-?\d+)$)", link)
   res_pl = re.search("(^https://)?(m\.)?(vk\.com/)(.*)(audio_playlist(-?\d+)_((\d+)(/\w*)?)$)", link)
   if res_pl:
       return str(res_pl.group(6)), str(res_pl.group(7))
   elif res:
       return str(res.group(6)), str(None)
   else:
       return False
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
это для ссылок на видео
можешь потыкать попробовать
как референс
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
findall почти не использую
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
std::slavik
def get_vk_audio_owner_id(link):
   link = re.sub('%2F', '/', link)
   res = re.search("(^https://)?(m\.)?(vk\.com/)(.*)(audios(-?\d+)$)", link)
   res_pl = re.search("(^https://)?(m\.)?(vk\.com/)(.*)(audio_playlist(-?\d+)_((\d+)(/\w*)?)$)", link)
   if res_pl:
       return str(res_pl.group(6)), str(res_pl.group(7))
   elif res:
       return str(res.group(6)), str(None)
   else:
       return False
вру, это на аудио
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и для старых версий
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник