[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: regex-back-matching.gif -(13 KB, 488x270, regex-back-matching.gif)
13 No.8011  
Привет Стив, тут такое дело - столкнулся с регекспами, вроде по большей части осилил, но вопросы остались. В частности по работе с оными в preg_replace и подобных.

Можно ли допилить регексп ((.?[ _])+) чтобы \1 возвращал на месте [ _] пробел назависимо от того, что там было? (образец сферический в вакууме, на месте .? немного более сложный кусок, но это не принципиально)

Проитерировать \2 в ((.*?)[ _])+ тоже нереально, можно только последний получить?
>> No.8012  
между точкой и знаком вопроса зездочка оба раза. разметка съела.
>> No.8013  
Файл: shot0106.png -(733 KB, 1280x720, shot0106.png)
733
>>8011
Если ты о preg_replace из php, то там PCRE и за два квантификатора подряд функции надо бы вывалиться в эксепшн, а не давать тебе выхлоп. Лучше приведи пример, чего тебе надо взять и во что превратить.
>> No.8014  
>>8013
http://www.everfall.com/paste/id.php?swm9huegwrg0
>> No.8016  
Файл: shot0024.png -(822 KB, 1280x720, shot0024.png)
822
>>8014
Как-то так: http://pastie.org/pastes/5353596/text
Делал и тестировал в CLI, так что если будешь выводить через браузер, оберни выхлоп в <pre>.
>> No.8017  
>>8016
Спасибо.

> strtr($matches[2],'_',' ')
Ну я примерно так же и делал. Только chfpe начинал с этого, чтобы потом обойтись без [ _]. Просто интересно было, можно ли как-то сразу.
>> No.8024  
Файл: b74928f2a40b65d5dd67645c89296d74.jpg -(786 KB, 1000x844, b74928f2a40b65d5dd67645c89296d74.jpg)
786
Научите меня в регэкспы!
>> No.8025  
>>8024
Да я как взялся пробовать в них разобраться - оказалось, что уже их осколочно выучил почти целиком.
>> No.8031  
>>8024
Быстрее всего регулярки осваивают чистоплюи, не переносящие мат, предложения с маленькой буквы и т.п., и при умудряющиеся сидеть на бордах.
>> No.8035  
>>8031
Потому что им приходится настраивать куклоскрипт?
>> No.8950  
Файл: Johnny Depp-40900.jpg -(40 KB, 402x600, Johnny Depp-40900.jpg)
40
Ня!
На входе есть строчки вида: "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"?
>> No.8951  
Неудивительно, что в приличных местах джаваскриптеров гоняют ссаными тряпками.
>> No.9015  
анон, подскажи регэксп для php.

нужно удалить из текста все тэги, кроме некоторых
ну, скажем, надо оставить только a,b,font

делаю так:

$text = preg_replace("#</?(?!a\b|b\b|font\b|!--)[^>]*>#i", "", $text);

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

что не так?
>> No.9016  
>>9015
разобрался:

$text = preg_replace("#</?(?!/|a\b|b\b|font\b|!--)[^><]+>#i", "", $text);
>> No.17705  
В 2012 году эпическая макропаста https://stackoverflow.com/a/1732454 была сочинена именно в качестве отрицательного ответа на вопрос об употреблении регулярных выражений для разбора кода HTML.
>> No.17715  
>>17705
И выросло это из нормального совета в пугало размером с GOTO. Конечные ноды любой грамматики всё равно регулярки.

А первые комментарии к посту датируются 2009 годом, так что он никак не мог быть написан в 2012.



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]