• Как найти последний элемент времени в строке и добавить произвольный текст?

    Alexandroppolus
    @Alexandroppolus
    кодир
    const addTimeDescription = (str) =>
        str.replace(/\b\d{1,2}:\d{2}\b(?!.*?\b\d{1,2}:\d{2}\b)/, '$& (время местное)');
    
    // пример использования
    
    const originalString = " с 14:01 к 15:00 работать по плановому";
    const updatedString = addTimeDescription(originalString); // ' с 14:01 к 15:00 (время местное) работать по плановому'


    здесь берем только то совпадение, после которого нет другого совпадения.

    самый интересный момент - ".*?" вместо ".*", благодаря этому регулярка на порядки быстрее работает на длинных строках с кучей отметок времени

    update: более простая регулярка, на основе жадности:
    /^.*\b\d\d?:\d\d\b/
    Ответ написан
    4 комментария
  • Как найти последний элемент времени в строке и добавить произвольный текст?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    - .replace(new RegExp(`\\b${ lastTime }\\b`)
    + .replaceAll(new RegExp(`\\b${ lastTime }\\b`, `g`)


    Но тут надо понимать, чего вообще вы ожидаете. Например, для строки "плановые подвиги в 12:19, 13:59 и 14:00, ужин в 14:00" обе версии кода вернут "плановые подвиги в 12:19, 13:59 и 14:00, ужин в 20:00 (время местное)", а вот для "плановые подвиги в 12:19, 13:59 и 14:00, обед в 14:00" ваша версия вернёт "плановые подвиги в 12:19, 13:59 и 14:00 (время местное), обед в 14:00", а моя - "плановые подвиги в 12:19, 13:59 и 14:00 (время местное), обед в 14:00 (время местное)".
    Может, должно заменяться только в принципе последнее значение времени (т.е. "плановые подвиги в 12:19, 13:59 и 14:00, обед в 14:00 (время местное)")?
    Ответ написан
    1 комментарий
  • Как найти последний элемент времени в строке и добавить произвольный текст?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const str = 'с 14:01 к 15:00 работать по плановому';
    console.log(str.replace(/(\d\d:\d\d)(?!.*\d\d:\d\d)/, (s) => s + ' (время местное)'));
    // с 14:01 к 15:00 (время местное) работать по плановому
    Ответ написан
    Комментировать
  • Почему функция добавляет только последний объект?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Потому что ты в цикле перезаписываешь словарь по одним и тем же ключам.
    Добавь в data пустой список и добавляй туда значения.
    def holdings():
        data = {} 
        data['content'] = []
        res = requests.get(BASE_URL)
        res_content = json.loads(res.content)    
        for holding in res_content['data']:
             data_id = holding['id']
             data_name = holding['attributes']['name']
             data['content'].append({'id': data_id, 'name': data_name})
        return data
    Ответ написан
    Комментировать
  • Как парсить результаты JSON по условию?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    for data in res_content['data']:
    	attributes = data['attributes']
    
    	regions = attributes['regions']['data']
    	name = attributes['name']
    	print(name)
    	for region in regions:
    		print('--',region['attributes']['name'])
    Ответ написан
    2 комментария
  • Убрать лесенку при использовании radial-gradient?

    @cheeroque
    Добавьте градиенту пиксель ширины:

    background: radial-gradient(circle at 30px 30px, transparent 30px, white 31px) -30px -30px;
    Ответ написан
    Комментировать
  • С чего начинать проектировать приложение?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Предположим, что с будущей функциональностью Вы определились. Тогда Вы точно знаете, кто или что будет поставлять данные, и кто/что будет их потреблять.

    Теперь выясните, кто будет обращаться к вашей системе, чтобы передать или забрать данные, а к чему будет обращаться Ваша программа. Те системы или пользователи, которые обращаются к программе сами, нарисуйте схематически на листе бумаги вверху. Те, к которым будет обращаться программа (включая БД), - снизу.

    Теперь нарисуйте под каждым нарисованным сверху субъектом прямоугольник с названием UI или API - это интерфейсы, к которым будет обращаться пользователь или внешняя управляющая система. Иногда UI тоже может обращаться к API. Объедините все прямоугольники с UI одним контуром и обзовите слоем UI. Объедините все прямоугольники с API и обзовите слоем сервисов.

    Для систем, нарисованных снизу, укажите компоненты, которые будут отвечать за доступ к этим системам. Объедините все эти компоненты одним контуром и обзовите слоем доступа к данным.

    Между слоем сервисов и слоем доступа к данным нарисуйте большой контур и назовите его слоем бизнес-логики. В маленьких прямоугольниках внутри этого контура перечислите основные бизнес-задачи. Один компонент Вашей системы будет решать одну бизнес-задачу.

    Теперь справа нарисуйте несколько длинных прямоугольников снизу доверху и написшите в них: логирование, конфигурация, мониторинг производительности, обработка исключений и что-то ещё, что является общей инфраструктурой (или сквозной функциональностью) для всех слоёв вашей программы.

    Получите логическую архитектуру. Разбросайте слои по серверам - получите физическую архитектуру.

    А дальше - детально прорабатывайте каждый маленький квадратик. Всё.
    Ответ написан
    2 комментария
  • Какие видеокурсы по изучению английского языка посоветуете?

    @Profatilova
    Самое лучшее -
    rutracker.org/forum/viewtopic.php?t=563735
    rutracker.org/forum/viewtopic.php?t=563824
    rutracker.org/forum/viewtopic.php?t=587008

    Там курс "English for you" 3 уровня. От Beginer до Intermediate. Уроки на английском, но все понято. Объясняют все отлично. Будете реально понимать что как и почему.

    А для того чтобы подтянуть именно разговорный язык, который будет необходим в повседневной жизни нужно читать и слушать журнальчик Hot English Magazine :

    rutracker.org/forum/viewtopic.php?t=1556121
    rutracker.org/forum/viewtopic.php?t=2590059
    rutracker.org/forum/viewtopic.php?t=3061180

    Update
    Еще канал на youtube (для "продолжающих")))
    https://www.youtube.com/user/JamesESL/videos
    Ответ написан
    1 комментарий