• Вопрос для гуру регулярных выражений

    @Bonart
    Классические регулярные выражения из математики такую задачу не решают. Но на практике последние версиии популярной библиотеки PCRE умеют:
    my $bal = qr/
        (?<bal>            # Name the rule (optional)  
        \{                 # Open brace
        (?>                # Possessive subgroup
            (?> [^{}]+ )   #  Grab all the non braces
        |                  #    or
            (?&bal)        #  Recurse
        )*                 # Zero or more times
        \}                 # Close brace
        )                  # End named rule
    /x;
    
    if ('{x{x}y{x}x}' =~ /^$bal$/ ){
        print "It's balanced\n";
    }
    
    $_= 'XXXX function xxx() {x{x}y{x}x} XXXX';
    
    while ( /\bfunction\s+(\w+)\(\)\s*($bal)/g ){
        print "function: $1\nbody: $2\n";
    }
    


    Да и дотнет не отстает:

    string pattern = 
        @"^((?<openBracket>\{) | [^\{\}] |" + 
        @"(?<closeBracket-openBracket>\}))*" +
        @"(?(openBracket)(?!))$";
    Regex r = new Regex(pattern, RegexOptions.IgnorePatternWhitespace);
    
    Ответ написан
    Комментировать
  • Вопрос для гуру регулярных выражений

    alexmuz
    @alexmuz
    На PHP:
    $balanced = !preg_match("/[()]/", preg_replace("/\((((?>[^()]+)|(?R))*)\)/", "", $string));
    Это в том числе для строк вида: aaa(bb)cc

    Но это извращение, лучше делать как написал Mithgol.
    Ответ написан
    Комментировать
  • Вопрос для гуру регулярных выражений

    @Ano
    В некоторых языках работают рекурсивные выражения:

    \( (?: [^()] *+ | (?0) )* \)

    В некоторых языках можно читерить (PERL):

    $regex = qr/
      \(
        (
          [^()]+
        |
          (??{$regex})
        )*
      \)
    /x;
    


    (Ruby)

    re = %r{
      (?<re>
        \(
          (?:
            (?> [^()]+ )
            |
            \g<re>
          )*
        \)
      )
    }x
    
    Ответ написан
    Комментировать
  • Выплаты admob.com в альфабанк?

    Bublik
    @Bublik
    Web & Mobile developer, Head of Mobile department
    Beneficiary Name = Получатель
    Bank Name = Alfa-Bank
    Bank Address = Банк получатебя
    IBAN = Счет получателя
    SWIFT = IRVTUS3N
    Ответ написан
    2 комментария
  • Идея агрегатора избранного мучает меня?

    @codecity
    Зависит от реализации. Если круто и удобно сделаете — будут использовать. Если унылое говно (далее УГ) — никто не будет тратить время.

    За 10 лет практики пришел к выводу, что главное качество реализации и поддержка, а не идея. Даже на старой как мир идее всегда можно срубить куш, если качественно работать. Даже булочную открыть — уже можно заработать, если подойти с умом.

    В принципе, подобные (агрегационные) сервисы и программы уже есть. Но они не удобны, по этому никто их не использует.

    Если можете сделать качественно — делайте. Если еще одно УГ — лучше не тратить время.
    Ответ написан
    Комментировать
  • Интернет мазагин мягких игрушек в Питере

    @trueneutral
    Игрушки до кучи доставляют онлайн-продавцы цветов. Например, эти ребята.
    Ответ написан
    Комментировать
  • C выбором формата видео на TV?

    @tick
    Фильмы бывают не только 4:3 и 16:9, но еще и других форматов — см. en.wikipedia.org/wiki/Original_aspect_ratio. Разрешения 1280x534 и 1920x800 — это как раз OAR, соотношение 2,4:1 — то, что мы обычно видим в кинотеатрах. Просто при рипе черные полосы были обрезаны, чтобы съэкмономить место. На оригинальных Blu-ray дисках такие фильмы идут в разрешении 1920х1080, но сверху и снизу в картинке есть черные поля. При rip'е эти поля вырезают.

    Так как большинство новых телевизоров сейчас 16:9 или 16:10, то возникноение черных полос неизбежно, если фильм в формате OAR. Но например есть телевизор Филлипс с диагональю 21:9 — это близко к OAR, поэтому фильмы на нём можно смотреть без черных полей.
    С другой стороны, бывают релизы фильмов, уже обрезанных под формат 16:9. Там тоже не будет черных полей.

    И наконец, о скалировании. Так как вы смотрите с компьютера, то скорее всего при выводе видео через HDMI картинка уже преобразована в нужный формат силами видеокарты. На телевизор попадает изображение в формате 1280x720p, которое затем телевизор сам дотягивает до 1360х768. Поэтому и не рекомендуется покупать эти убогие матрицы формата 1360х768.
    Во всяком случае, проверьте в закладке драйверов, в каком формате у вас работает HDMI. Теоретически там может стоять и 1360х768, тогда компьютер апскейлит до этого разрешения и телевизор показывает картинку «пиксел-в-пиксел», что конечно же лучше, так как алгоритмы апскейла в дешевых телевизорах проигрывают по сравнению с апскейлом видекарты компьютера.
    Но скорее всего, там банальные 1280x720.

    Скалирование может происходить как на
    Ответ написан
    4 комментария
  • CPP вставки в PHP-скрипты

    homm
    @homm
    Никто не упомянул hiphop-php. Это немного не то, но учитывая что у нас тут глухой телефон (собеседователь сказал вашему другу, друг вам, вы нам), вполне возможно что имелся ввиду именно он.
    Ответ написан
    Комментировать
  • Плагин для Фаерфокса, восстанавливающий возможность копирования

    FF5L
    @FF5L
    Попробуйте отключить js с помощью плагина addons.mozilla.org/ru/firefox/addon/noscript/ — помогает, хоть и не всегда в таких ситуациях.
    Ответ написан
    5 комментариев
  • Как покупать вещи на Amazon.com?

    Scorpi
    @Scorpi
    Во первых, Amazon не аукцион, там продают магазины и некоторые пользователи, но большинство товаров продаются самим Amazon. То-есть абсолютно новые вещи, в их качестве сомневаться не нужно как это происходит на Ebay.
    Доставка есть бесплатная и ещё несколько платных, цены показываются при оформлении заказа и ещё где-то в хелпе вроде есть.
    Чтобы купить справа нужно жать Add to cart, вы можете также купить вещь у других продавцов, но я заказываю всегда у самого Amazon.
    Принимает только карточки напрямую, PayPal не принимает.
    Если будут ещё вопросы — спрашивайте =)
    Ответ написан
    2 комментария
  • Проект для туториала по symfony2?

    Dmitry404
    @Dmitry404
    Q&A был бы неплохим выбором, теги, пейджинг, авторизация/аутентификация, поиск, рейтинг, в общем куча интересных штучек и не так приелось как блог.
    Ответ написан
    1 комментарий
  • RegExp-задачка

    Wott
    @Wott
    Правильно послал вас к позиционным проверкам

    Смысл в том что бы исключить условие что цифры внутри скобок, то есть вводим проверку на отсутствие впереди закрывающей скобки (?!.*\)). Но возникнет проблема в том что мы можем таким образом захватить пару скобок впереди. Для исключения этого случая вместо любого символа ищем все, кроме открывающей скобки, — (?![^\(]*\))

    Конечный регэксп выглядит так: /\d{4}(?![^\(]*\))/
    Ответ написан
    2 комментария
  • Kohana & I18n. Можно ли разделить языковой файл на части?

    dohlik
    @dohlik
    Честно говоря, не вижу смысла в такой «оптимизации». Типичная практика — вынос переводов в необходимые модули, это имеет смысл если есть модуль Forum, модуль Blog и т.д. Соответственно, если модуль Forum не подключен, то и его I18n-файлы тоже не будут подключены.

    Я бы посоветовал не выдумывать дишних проблем :)
    Ответ написан
    Комментировать
  • Валидация кнопок социальных сетей?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Для первого надо добавить неймспейс:
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:g="http://google.com/"> 

    Впрочем, кажется, неймспейс можно добавить и непосредственно в сам элемент.

    Для второго заменить все & на &amp;
    Ответ написан
    4 комментария
  • PHP+MySQL для гуманитария?

    @totosarg
    Проверял? Проверял. Работает? Работает. Не трогай!
    Ответ написан
    Комментировать
  • FTP-клиент

    ertaquo
    @ertaquo
    Могу посоветовать FTP-клиент в Far Manager 2.
    Из плюсов:
    • удобный интерфейс Far'а, который будет привычен тем, кто раньше работал с NC/DN/TC
    • довольно гибкий, быстрый и функциональный фтп-клиент
    • поддерживается много кодировок, в том числе для работы с фтп и поиска по подстроке в файлах
    • можно легко редактировать файлы на сервере (при попытке редактирования файл скачивается во временную папку и открывается окно редактора, при закрытии файл заливается на сервер)
    • есть плагин для подсветки синтаксиса
    Из минусов:
    • не поддерживает соединение (впрочем, есть функция реконнекта, так что не страшно)
    • плагин фтп-клиента иногда глючит и приводит к падению или себя, или Far'а целиком (случается довольно редко, обычно при соединении с сервером; если падение происходит во время попытки закачки на сервер измененного в редакторе файла, то временный файл не удаляется и пишется, в какой папке он лежит)
    • просмотрщик файлов иногда глючит при поиске строки в файле, выдавая некорректное смещение (происходит это в-основном с многобайтовыми кодировками, типа utf-8)
    Ответ написан
    3 комментария