Привет Стив, тут такое дело - столкнулся с регекспами, вроде по большей части осилил, но вопросы остались. В частности по работе с оными в preg_replace и подобных. Можно ли допилить регексп ((.?[ _])+) чтобы \1 возвращал на месте [ _] пробел назависимо от того, что там было? (образец сферический в вакууме, на месте .? немного более сложный кусок, но это не принципиально) Проитерировать \2 в ((.*?)[ _])+ тоже нереально, можно только последний получить?
между точкой и знаком вопроса зездочка оба раза. разметка съела.
>>8011 Если ты о preg_replace из php, то там PCRE и за два квантификатора подряд функции надо бы вывалиться в эксепшн, а не давать тебе выхлоп. Лучше приведи пример, чего тебе надо взять и во что превратить.
>>8013 http://www.everfall.com/paste/id.php?swm9huegwrg0
>>8014 Как-то так: http://pastie.org/pastes/5353596/text Делал и тестировал в CLI, так что если будешь выводить через браузер, оберни выхлоп в <pre>.
>>8016 Спасибо. > strtr($matches[2],'_',' ') Ну я примерно так же и делал. Только chfpe начинал с этого, чтобы потом обойтись без [ _]. Просто интересно было, можно ли как-то сразу.
Научите меня в регэкспы!
>>8024 Да я как взялся пробовать в них разобраться - оказалось, что уже их осколочно выучил почти целиком.
>>8024 Быстрее всего регулярки осваивают чистоплюи, не переносящие мат, предложения с маленькой буквы и т.п., и при умудряющиеся сидеть на бордах.
>>8031 Потому что им приходится настраивать куклоскрипт?
Ня! На входе есть строчки вида: "65 days, 1 hours, 41 minutes, and 53.16 seconds" или "uptime is 3 weeks, 4 days, 16 hours, 16 minutes". Каким регэкспом в js мне можно их привести к единому формату типа "WW-DD HH:MM:SS"?
Неудивительно, что в приличных местах джаваскриптеров гоняют ссаными тряпками.
анон, подскажи регэксп для php. нужно удалить из текста все тэги, кроме некоторых ну, скажем, надо оставить только a,b,font делаю так: $text = preg_replace("#</?(?!a\b|b\b|font\b|!--)[^>]*>#i", "", $text); работает наполовину. перечисленные открывающие тэги оставляет, а вот закрывающие - почему-то удаляет все остальные тэги корректно вырезает. что не так?
>>9015 разобрался: $text = preg_replace("#</?(?!/|a\b|b\b|font\b|!--)[^><]+>#i", "", $text);
В 2012 году эпическая макропаста https://stackoverflow.com/a/1732454 была сочинена именно в качестве отрицательного ответа на вопрос об употреблении регулярных выражений для разбора кода HTML.
>>17705 И выросло это из нормального совета в пугало размером с GOTO. Конечные ноды любой грамматики всё равно регулярки. А первые комментарии к посту датируются 2009 годом, так что он никак не мог быть написан в 2012.
- wahaba + wakaba 3.0.9 + futaba + futallaby -