Регулярка: убрать текст из квадратных скобок

Lucifier

Новичок
В одном реализуемом проекте есть много данных с лишними символами, перед вносом в базе чищу.
Разобрался как убрать круглые скобки, а вот с квадратными проблема. Кому нужно вот круглые убираем, вместе с текстом заключенным в них:
PHP:
$tracking = preg_replace("#(.*?)\(.*?\)(.*?)#is", "\\1\\3", $tracking);
Прошу помощи в удалении скобок квадратных и данных из них. А так же попадаются данные вида 5:12 или 05:12, вот пример:
01.Shades (Feat. Diddy, Justin Timberlake) [World Premiere] 5:12
02.Spit In Your Face (Feat. Kevin Rudolf) 07:01
не знаю как победить.
 

Lucifier

Новичок

tz-lom

Продвинутый новичок
Lucifier
а теперь совмести знание этой регулярки с пониманием что тебе нужно просто заменить круглые на квадратные
 

Lucifier

Новичок
Lucifier
а теперь совмести знание этой регулярки с пониманием что тебе нужно просто заменить круглые на квадратные
а вот не работает, уже пробовал.

точнее не так, конструкция для удаления квадратных скобок:
PHP:
$tracking = preg_replace("#(.*?)\[.*?\](.*?)#is", "\\1\\3", $tracking);
работает отлично, но объединить с первой не могу. и с этим не совладаю:
Прошу помощи в удалении скобок квадратных и данных из них. А так же попадаются данные вида 5:12 или 05:12.
 

Lucifier

Новичок
— в первом сообщении нет никакого выражения для «квадратных» скобок. Надо чётко описывать проблему, когда просишь помощи на форуме.
а что мне демонстировать если скрестить их не удалось в одну регулярку?
 

Вурдалак

Продвинутый новичок
Lucifier, мы должны были догадаться? Ты сказал:
Разобрался как убрать круглые скобки, а вот с квадратными проблема
— и всё.

Как-то так:
PHP:
$s = preg_replace('/\\(.*?\\)|\\[.*?\\]/s', '', $s);
С удалением длительности трека тоже всё просто. Что не получается?
 

Lucifier

Новичок
PHP:
/\\(.*?\\)|\\[.*?\\]|[0-9]{1,2}[:][0-9]{1,2}/s
сделал. спасибо за пинок под ленивый зад, не так уж и сложно как кажется на первый взгляд.
 

tz-lom

Продвинутый новичок
[:] можете просто : ставить,необязательно делать групировки из одного элемента
так же можете вместо [0-9] использовать \d
 

Вурдалак

Продвинутый новичок
На самом деле, я бы подумал, прежде чем заменять три регулярных выражения одним. Чем больше текста, тем хуже.
 

Ragazzo

TDD interested
Lucifier
Все дело в алгоритмах регулярных выражений, которые зависят от длины текста, при очень большой длине можно получить нехилые задержки при сравнении..В книге Фридла подробно расписано, почитай на досуге...(оффтоп получился, извиняюсь)
 
Сверху