[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разбор строки на название и описание
McLotos
Доброе утро! =)
Появилась задача разобрать строку на составляющие, например
Цитата
Вывести на экран "Hello World"

Поскольку я не понимаю как работают регулярки, я решил эту задачу при помощи... никогда не догадаетесь! explode() =)
Реализовано это вот таким вот бредокодом который как не странно работает.
$expl1 = explode('"',$text);
$expl2 = explode('"',$expl1[1]);
$name = $expl2[0];
$descr = $expl1[0];
$id = explode(' ',$goods['Name']);

Если не учитывать тот факт что эта реализация на уровне дошколенка, то работает он идеально при одном условии - слово в кавычках должно быть в конце строки.
А чтобы не зависеть от расположения заголовка в строке нужно придумывать регулярки. Вот честно сколько не читал манов по регуляркам, они для меня все-равно BrainFuck =)
Я погуглил и нашёл такой вариант
Цитата
preg_match_all("/\"(.*?)\"/i", $str, $matches);

Не удивлюсь если он ещё и работает, но мне всё-же не понятно что происходит в этой функции, в неё передается BrainFuck, строка которую нужно обработать, массив который нужно создать с результатами. Есть какой-то ну ооооочень детальный мануал по регуляркам?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Игорь_Vasinsky
Цитата
никогда не догадаетесь! explode() =)

да это самый популярный способ у тех кто не работал с регулярками))

http://www.php.net/manual/ru/regexp.introduction.php
http://www.php.su/articles/?cat=regexp&page=008
http://phpfaq.ru/regexp

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
BaNru
К выше озвученным стоит добавить

Общая статья по Регулярным выражениям на Википедии А картинку из статьи можно распечатать и повесить над столом. В ней есть ответы на большинство вопросов.

Очень понятно всё описано, мне эти маны помогли в своё время http://www.softtime.ru/bookphp/gl7_1.php

http://regex101.com/ - сервис для отладки regex, при чем всё наглядно и понятно. Поможет в обучение.

Так же есть хорошая книга
Дж.Фридл. Регулярные выражения. 2-е издание
(сам не читал, но люди говорят)
Скачать эту книгу и пару cheatsheet по regex
sergeiss
SergeySA, насчет твоей фразы
Цитата (SergeySA @ 21.05.2014 - 06:25)
эта реализация на уровне дошколенка

Обрати внимание на то, что даже разработчики ПХП говорят в хэлпе, что если задачу можно сделать без регулярок, то ее лучше делать без регулярок. Например, если более простые функции позволяют получить требуемое.
И причина объяснена: регулярки весьма "ресурсоемки".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
McLotos
sergeiss
т.е. это у меня ещё адекватный вариант решения?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
sergeiss
SergeySA, в твоем случае, я думаю, с регулярками будет лучше smile.gif

Проблема только в том, что у тебя прозвучала такая мысль, что "explode плохо, регулярки хорошо". Я только хотел подчеркнуть, что нет такого абсолюта. В случаях, когда можно обойтись простыми средствами, надо работать ими. А то было такое на форуме, что простое деление строки по пробелу делали регулярками - вот это уже был изврат smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Zzepish
Игорь_Vasinsky
Цитата

да это самый популярный способ у тех кто не работал с регулярками))

О_о есть программисты, которые не работают с регулярками?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.