@python_beginnersЭта группа больше не существует

Страница 931 из 1885
Johnnie
16.12.2016
09:32:31
словаря

Amaro
16.12.2016
09:32:32
Просто после первой \d вопрос неннада

Zart
16.12.2016
09:32:49
а зачем там вообще опциональная группа?

Johnnie
16.12.2016
09:33:11
> потому что ведущий ноль наверняка не канает канает патамушто блять есть еще преамбула которая без номера, но там тоже надо дергать все {hui}

Google
Dmitriy
16.12.2016
09:33:12
опциональной должна быть последняя, я предлагал уже

Johnnie
16.12.2016
09:33:21
я ставлю щас туда 0.0

перед ней

надо как-то извратиться с условием ИЛИ для пункта, но не получается пока

Zart
16.12.2016
09:34:24
\d+ - матчим произвольное число \d+(\.\d+)* - матчим произвольное колво секций 1.2.3.4 '\d+(\.\d+)*\s+' - добавляем пробелы

Johnnie
16.12.2016
09:35:09
\d+(\.\d+)* - матчим произвольное колво секций 1.2.3.4

хммм..

не совсем

хавает всякую дрянь

просто номера тоже хавает

Zart
16.12.2016
09:36:01
ну

а надо чтобы хоть одна точка была?

Johnnie
16.12.2016
09:36:17
Match 1 Full match 105-113 `9276 ` Match 2 Full match 2353-2365 `10002561 ` Match 3 Full match 2367-2372 `1 ` Match 4 Full match 5999-6011 `10002561 ` Match 5 Full match 6013-6018 `2 `

Google
Johnnie
16.12.2016
09:36:31
хотя бы две

либо 1.1. либо 1.1.1.

Zart
16.12.2016
09:37:14
\d+(\.\d+){1,2} - меняем * (произвольное колво секций) на 1-2, плюс одна обязательная

Johnnie
16.12.2016
09:38:57
(\d\.){2,3}

так может?

Zart
16.12.2016
09:39:18
если ты хочешь чтобы точка на конце была - да

Johnnie
16.12.2016
09:39:21
ой

плюс забыл

Dmitriy
16.12.2016
09:39:27
(\d\.){2,3}
1.10.1. - не пройдет

Zart
16.12.2016
09:39:44
ну он имел в виду (\d+\.){2,3}

Johnnie
16.12.2016
09:40:00
([1-9]+\.){2,3}

Zart
16.12.2016
09:40:09
нет

Dmitriy
16.12.2016
09:40:22
([1-9]+\.){2,3}
мой пример выше опять провалится

Zart
16.12.2016
09:40:38
если не хочешь лидирующих нулей: ([1-9]\d*\.){2,3}

Johnnie
16.12.2016
09:42:40
([1-9]\d*\.){2,3}\s+

работает так

Zart
16.12.2016
09:43:14
победа сил добра над силами разума

Dmitriy
16.12.2016
09:44:30
в т.ч. и на этом
да, и новый проходит даже для 10.1.1.

Google
Johnnie
16.12.2016
09:45:42
{2,3} заменил на +

в 2 раза короче стал :)

Dmitriy
16.12.2016
09:51:11
в 2 раза короче стал :)
теперь проходит 1.

Johnnie
16.12.2016
09:51:44
блиа

Zart
16.12.2016
09:52:13
да ладно, скопипасти блок

(?:[1-9]\d*\.)(?:[1-9]\d*\.)+\s+

Dmitriy
16.12.2016
09:53:22
{2,3} заменил на +
а если заменишь {2,3} -> {2,} - будет проходить 1.1.1.1 зачем пытаться сделать короче regexp, если он уже нормальный?)

Zart
16.12.2016
09:55:14
а, части вокруг запятой опускать же можно

Johnnie
16.12.2016
09:56:37
preamble_text = r'именуемoe в дальнейшем Продавец' preamble_text_subst = 'PREAMBLE' clause_exp = r'(([1-9]\d*\.){2,}\s+)|(%s)' % preamble_text pick_out_clauses_exp = r'(({clause_exp}).+?(?={clause_exp}))'.format( clause_exp=clause_exp)

'%s' % somestring - сильно страшно?

Zart
16.12.2016
09:57:07
неверно

Johnnie
16.12.2016
09:57:15
через формат не канает т.к. он видит {2,} и орет про ключ

Zart
16.12.2016
09:57:23
если в этом somestring будут регэксповые символы - будет херня

Dmitriy
16.12.2016
09:57:25
{{}}

Zart
16.12.2016
09:57:27
для этого есть re.escape

r'(?:[1-9]\d*\.){2,}\s+|' + re.escape(sometext) даже так. чтобы скобочек поменьше

Johnnie
16.12.2016
10:03:04
clause_exp = r'(([1-9]\d*\.){2,}\s+)|' + \ re.escape('{0}'.format(preamble_text)) pick_out_clauses_exp = r'(({clause_exp}).+?(?={clause_exp}))'.format( clause_exp=clause_exp)

ща попробую вкурить твой эксп

Zart
16.12.2016
10:03:21
'{0}'.format(x) == str(x)

зачем бесмыслиную хуиту делать?

Google
Johnnie
16.12.2016
10:04:00
:D

точно

Zart
16.12.2016
10:04:18
при этом икс у тебя и так строка

Johnnie
16.12.2016
10:04:42
clause_exp = r'(([1-9]\d*\.){2,}\s+)|' + re.escape(preamble_text)

всем спасибо большое еще раз!

я даж боюсь целиком код показывать

тапками закидают

clause_exp = r'(([1-9]\d*\.){2,}\s+)|' + re.escape(preamble_text) pick_out_clauses_exp = r'(({clause_exp}).+?(?={clause_exp}))'.format( clause_exp=clause_exp)

здесь формат уже не нужно трогать ведь? т.к. до этого регэксп и так с эскейпом

Admin
ERROR: S client not available

Max
16.12.2016
13:13:13
Ребят а киньте мануал (желательно на русском ) где описывается как работает __str__ , __call__ и т.д

Zart
16.12.2016
13:13:31
нет

Igor
16.12.2016
13:15:36
да лан те, это ж не руде пихтон

запрос "__str__ python site:habrahabr.ru" в гугле творит чудеса!

Zart
16.12.2016
13:17:19
"Замечание от переводчика: svetlov отмечает, что здесь автор ошибается, на самом деле __del__ всегда вызывается по завершении работы интерпретатора." таки не всегда

и __дел__ не деструктор

fox.cpp
16.12.2016
13:18:25
да лан те, это ж не руде пихтон
поясните за руде пихтон

Zart
16.12.2016
13:18:51
"составное" - кривой перевод

Google
Zart
16.12.2016
13:22:23
как обзорное туда-сюда, как детальное - херня

Igor
16.12.2016
13:24:12
если нежелательно на русском - https://docs.python.org/2/reference/datamodel.html#special-method-names, полагаю?..

Bulat
16.12.2016
13:26:11
https://habrahabr.ru/post/186608/ на, развлекайся
ну вот вообще не понятно

для чего используется и как?

если я пишу: for x in self

то на самом делел в магии вызывается __iter__(self)

или как?

Zart
16.12.2016
13:30:20
там сложнее

сперва вызвается self.__iter__(), который возвращает итератор потом у этого итератора вызывается i.next() (в тройке - i.__next__())

для чего используется и как?
для реализации операций же

b0g3r
16.12.2016
13:32:04
Там еще запасной вариант есть, если __iter__ не реализован в объекте

Zart
16.12.2016
13:33:04
ты пишешь код вида x + y под капотом это превращается в байткод вида LOAD_NAME x LOAD_NAME y BINARY_ADD POP_TOP где BINARY_ADD под тем же капотом преобразует это в вызов x.__add__(y) используя слоты

Bulat
16.12.2016
13:34:42
статья запутанная?

b0g3r
16.12.2016
13:35:28
Если хочется про это подробно почитать - тут уже не раз советовали Python К вершинам мастерства

Там довольно неплохо разжевано и на примерах показано

Но к случаю с __unicode__ это очень слабо относится, так как метод совсем не хитрый и ничего интересного не делает

У тебя по-моему просто проблемы с пониманием того, зачем этот метод в джанго модели и где используется, но это вопросы к джанге

Bulat
16.12.2016
13:39:37
в точку ;)

Anton
16.12.2016
15:06:47
помогите пожалуйста с простым скриптом. Суть: считать из файла названия, а потом скопировать все файлы с этим названием из указанной директории (с рекурсией) в другую папку. Встрял в самом начале. http://dl2.joxi.net/drive/2016/12/16/0019/1704/1271464/64/430e0e02c1.jpg Изначально хотел прочесть 2 списка и вывести пересекающиеся значения, а потом уже думать над копированием, но выдает ошибку TypeError: unsupported operand type(s) for +: 'int' and 'str'

Zart
16.12.2016
15:08:11
темносинее на черном в сраном джипеге...

Страница 931 из 1885

Эта группа больше не существует Эта группа больше не существует