Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > выделение подстроки .


Автор: box 23.3.2007, 03:42
люди , помогите выделить подстроку , но проблемма заключается в следующем , что строка имеет не стабильный разделитель , а именно она может выглядеть и так :
 A Camp - I Can Buy You 
ну с этим вариантом все понятно , и его можно выделить при помощи експлоде с разделителем "-".
ну а как быть когда попадется вот такая строка :
A-ha - Celice 
а мне нужно четко отделить исполнителя от названия композиции !!!
как мне это сделать ???
 
 

Автор: Serkys 23.3.2007, 03:49
Используй разделитель " - ". Т.е. "пробел тире пробел". Запомни, пробел тоже является символом.

Автор: box 23.3.2007, 05:13
а как-же быть с этим :

A-ha-Crying in the rain 

или там еще такой вариант есть :

D-12-D-12 World 

просто даже и незнаю что делать ? 
 


и там таких вариантов полно , может быть как-то регвырами ??? но я в них не силен , помогите пожалуйста кто получше разбирается !!!
 
 

Автор: mclight 23.3.2007, 09:34
ты прав...для разбора сложных строк нужны регвыр
Код


echo "<pre>";
preg_match_all("/(-*(\w*)\W)/",$text,$res);
print_r($res);
echo "</pre>";

Автор: skyboy 23.3.2007, 09:44
Цитата(box @  23.3.2007,  04:13 Найти цитируемый пост)
A-ha-Crying in the rain 

а как насчет
Цитата

abra-kadabra-mussy-pussy
 ?
как определить, где - название, а где - исполнитель? что будешь делать, если будут дефисы и там, и там? какие тут могут быть регвыры, если человек не определить, где-что?

Автор: mclight 23.3.2007, 09:58
вот-вот.......ну извини меня, а что делать тогда если строка вида
Цитата

abrakadabramussypussy

т.е. вообще без разделителей? это уже он сам должен думать.........и ставить разделители........

Автор: skyboy 23.3.2007, 10:52
Цитата(mclight @  23.3.2007,  08:58 Найти цитируемый пост)
ну извини меня, а что делать тогда если строка вида

извиняем. но речь о том, что дефисов не будет вовсе - не шла. говорилось о том, что надо как-то догадаться, какой из нескольких дефисов разделяет название и исполнителя.

Автор: Serkys 23.3.2007, 11:49
box, давай попутно ещё и ИИ изобретём. smile

Автор: VeNICK 23.3.2007, 12:56
если выписать все возможные разделители, и двигаться с конца, пока его не увидишь

Автор: Serkys 23.3.2007, 14:18
Цитата(VeNICK @  23.3.2007,  12:56 Найти цитируемый пост)
если выписать все возможные разделители, и двигаться с конца, пока его не увидишь

К примеру строка "A-ha-Crying in the rain". Разделителем является тире. Как ты скажешь скрипту какое тире использовать? Второе - а если будет строка "A-h-a-Crying in the rain"? Последнее - а как в случае с "A-ha-Crying-in the rain"?
Нереально.

Автор: VeNICK 23.3.2007, 16:52
в данном случае можна найти кучи примеров, которые предусмотреть нельзя => нужно иметь некие шаблоны вариантов названий.

А если глянуть глобально, то вижу проблему нерозвязной

Автор: box 23.3.2007, 18:09
я нашел одну закономерность , чаше всего встречаются фразы с одним разделителем реже с двумя , еще реже с тремя , ну и совсем парочку встречаются с четырьмя .но и их нельзя сбрасывать со счетов !!!

Автор: Serkys 23.3.2007, 23:48
Цитата(box @  23.3.2007,  18:09 Найти цитируемый пост)
чаше всего встречаются фразы с одним разделителем реже с двумя , еще реже с тремя , ну и совсем парочку встречаются с четырьмя

Какими именно разделителями? Имеешь в виду от одного до четырёх тире: "----"? smile

Автор: mclight 24.3.2007, 10:03
Цитата(skyboy @  23.3.2007,  12:52 Найти цитируемый пост)
извиняем. но речь о том, что дефисов не будет вовсе - не шла. говорилось о том, что надо как-то догадаться, какой из нескольких дефисов разделяет название и исполнителя. 


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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)