
Aragaer
20.03.2016
17:04:59
какие входные строкие нужно матчить и что надо выцепить
может ну ее вообще эту точку
это имена файлов?
или это просто абстрактная задачка на регекспы?

Google

Dmitriy
20.03.2016
17:09:21
(.*?..*?){56}

Pavel
20.03.2016
17:10:40
https://regex101.com/r/xM6jK1/2 вот так.

Sharkus
20.03.2016
17:10:42

Pavel
20.03.2016
17:11:27

Sharkus
20.03.2016
17:11:27
И то оно тебе не то даст, хотя условие тут крайне поверхностно дано :)

Dmitriy
20.03.2016
17:11:35

Aragaer
20.03.2016
17:12:21
еще раз, скажите правильное условие задачи. А не "надо сматчить точку и 56 вокруг нее"

Pavel
20.03.2016
17:13:02

Aragaer
20.03.2016
17:13:58
лично я бы сделал так - найти первую точку, взять хвост длины не более 55 из того, что перед ней, затем нос от того, что позади нее, длины не более чем осталось

Andrey
20.03.2016
17:16:18

Pavel
20.03.2016
17:17:13

Aragaer
20.03.2016
17:17:31
ну вот я просто сомневаюсь, что высказанное условие это то условие, по которому в действительности требуется валидировать

Sharkus
20.03.2016
17:18:04

Google

Pavel
20.03.2016
17:19:44

Aragaer
20.03.2016
17:21:42
первоначальное условие было написано так - "выцепить кусок длиной не более 56 из середины строки, чтобы этот кусок обязательно содержал точку"

Pavel
20.03.2016
17:24:05

Dmitriy
20.03.2016
17:24:33
(.){0,55}?(?=\.)|(?<=\.)(.){0,55}

Pavel
20.03.2016
17:24:41

Dmitriy
20.03.2016
17:25:00
55 ток

Aragaer
20.03.2016
17:25:04
требуется сматчить строку или сделать захват?
если только сматчить, то длина, как я понимаю, относится ко всей строке
и тогда проверка это "полная длина не более 56 и есть точка"
и тогда регулярки не нужны - len и in
как уже было написано

Pavel
20.03.2016
17:26:57
Не, задача валидировать строку по сложному условию. И так как я не спец по регуляркам, то решил спросить могут ли они ограничивать длину группы или нет. Вот и всё.
Если включить фантазию, то можно предположить, что система валидации - это пачка регэкспов, которая применяется к строке последовательно. и тогда ради len и in нужно как-то расширять этот validation framework,

Aragaer
20.03.2016
17:28:40
(.*)(.*\..*)(?<\1.*{0,56})
хм. Добавить ^ в первую группу и в look-behind
ну тогда оно мало отличается от look-ahead до $

Artem
20.03.2016
17:30:20

Aragaer
20.03.2016
17:30:50
а фреймворк надо расширить, чтобы он вместо регекспов принимал лямбды 8)

Pavel
20.03.2016
17:31:44
Кстати, тут попутный вопрос появился: а есть ли такие примочки к гиту, чтобы как-то пометить кусок кода, и в precommit он проверялся на неизменность? Ну, чтобы один раз этот регэксп написать, и чтобы никто никогда его не мог потрогать.
на код-ревью надейся, но робот надёжнее.

Google

Aragaer
20.03.2016
17:32:25
хуки можно любые написать
и положить на сервак в pre-update или типа того

Viktor
20.03.2016
17:51:51
Было что-нибудь интересное?
Впервые за все время пребывания в беседе лень читать
Блин, теперь 255 участников

Greg
20.03.2016
17:52:52
нужен еще один для круглого числа

Pavel
20.03.2016
17:53:12
у меня 256 показывает.

Ivan
20.03.2016
17:53:38
255:(

Greg
20.03.2016
17:53:56
на компе 255, а на телеофне 256
а не, уже 255
ждем юбиляра)

Pavel
20.03.2016
17:55:28
а юбиляра+1 кикнем, чтобы статистику не портил?

Andrey
20.03.2016
17:59:46

Pavel
20.03.2016
18:00:46

Greg
20.03.2016
18:00:52

Andrey
20.03.2016
18:01:03

Dmitriy
20.03.2016
18:01:39
На андроиде нет. Не помогает

Туся
20.03.2016
18:07:46
привела 256го. Специально заставила в телеге зарегаться, можно сказать.

87776
20.03.2016
19:01:01
djghjc
как в питоне запустить что-нибудь через os.system но так чтобы сам скрипт закрылся а то что мы запустили продолжило выполняться?

Google

Aragaer
20.03.2016
19:03:28
демонизировать 8)
os.system("(something &)")

87776
20.03.2016
19:03:48
я собственно чо хочу

Admin
ERROR: S client not available

Aragaer
20.03.2016
19:03:56
ща попробую

87776
20.03.2016
19:03:56
может кто поможет
есть гит репозиторий, я хочу написать скрипт, который бы делал гит пулл, убивал старый процесс и создавал новый
хотя вот сейчас подумал и мне уже не кажется такой хорошей идеей делать это через kill

Aragaer
20.03.2016
19:05:05
да, работает
мхм
правильнее предусмотреть перезапуск через sighup, это стандартный подход

87776
20.03.2016
19:07:19
а как его посылать?

Aragaer
20.03.2016
19:08:09
киллом же
ну еще кстати можно пид процесса сохранить в пидфайл - /var/run/my_script.pid
в смысле это текстовый файл с пидом процесса. Посылать сигхап туда

87776
20.03.2016
19:09:05
так килл же убьет в любом случае

Aragaer
20.03.2016
19:09:08
kill -SIGHUP

87776
20.03.2016
19:09:11
а
лол

Aragaer
20.03.2016
19:09:26
киллу ты указываешь какой сигнал послать, по умолчанию SIGTERM шлется

Google

Aragaer
20.03.2016
19:09:54
можно номер сигнала -9 например это sigkill

87776
20.03.2016
19:09:56
а по архитектуре его как вписывают? создают тред с обработчиком?

Aragaer
20.03.2016
19:10:09
нет, просто создают обработчик
когда сигнал приходит, то он доставляется первому попавшемуся треду, который его не закрыл маской

87776
20.03.2016
19:10:39
ага, кажись понял
ща попробую

Aragaer
20.03.2016
19:10:42
то есть если никто не закрыл, то вообще первому попавшемуся
после выхода из обработчика тред вернется куда был, но некоторые системные вызовы по сигналу прерываются с ошибкой eintr. Точнее почти все

87776
20.03.2016
19:11:37
погоди
но как же мне тогда посмотреть

Aragaer
20.03.2016
19:11:48
sighup это более-менее стандартный сигнал для "перечитай настройки"

87776
20.03.2016
19:11:55
может оно у меня что-то будет делать важное
в базу там генерить что-то для записи

Aragaer
20.03.2016
19:12:07
перед важным маску вешай
дык оно выскочит, попадет в обработчик сигнала, отработает и вернется обратно