Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
Здравствуйте! Посоветуйте, с чего начать изучение регулярок,
и какие сперва проще, или наоборот лучше, PERL или POSIX.
Да первый совет мне, не ленится я это и сам знаю.
Какая литература есть или сайты, где всё подробно разъясняется, что где и как.
Или кто-то не поленится да выложит здесь на форуме, а может кто-то ранее выкладывал, инфу начало-начал про регулярки, например в разделе уроки PHP, так скажем для всех.
Может кто подскажет какие-нибудь видеоуроки есть, именно про регулярки, в каком направлении метить?!
Мелкий
Отправлено: 10 Июня, 2012 - 16:02:32
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
POSIX можете только для общего развития изучать, они устарели.
PCRE (Perl-совместимые) - мне в своё время этого хватило: http://php.su/lessons/?lesson_17 Нужно только достаточно практики, пощупать своими руками, какое изменение регулярки на то влияет.
----- PostgreSQL DBA
Medallion
Отправлено: 10 Июня, 2012 - 16:12:14
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
Посмотрим, что получится
Medallion
Отправлено: 10 Июня, 2012 - 18:59:27
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Регулярка ищет вхождения с символа a по символ z
и записывает каждый символ как одно значение массива
Первый символ я вывожу так: echo $arr[0][0];
Второй так: echo $arr[0][1]; и т.д.
Как всю строку, записать в одно значение массива, при этом незная сколько символов в строке.
Пожалуйста с разъяснением, если не трудно. Заранее спасибо. (Добавление)
Дошло
preg_match_all('/[a-z]+/', $str, $arr); (Добавление)
Поехали далее, как выбрать строку между знаками доллара?!
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
по умолчанию в массив совпадений попадает 0-ым элементом - вся строка включающая в себя весь паттерн
1-ым и последующим элементами становятся совпадения взятые в паттерне в скобки
если мы не хотим брать совпадение, то в скобках перед паттерном должны поставить знак ?:
А нужна два массива, с двумя значениями string one и string two
Ступор, пошел искать далее. (Добавление)
Будут у кого-то решение, сам пока мозги себе плавлю, но пока решение не нашёл
DlTA
Отправлено: 10 Июня, 2012 - 22:03:33
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
PREG_PATTERN_ORDER
Если этот флаг установлен, результат будет упорядочен следующим образом: элемент $matches[0] содержит массив полных вхождений шаблона, элемент $matches[1] содержит массив вхождений первой подмаски, и так далее.
PREG_SET_ORDER
Если этот флаг установлен, результат будет упорядочен следующим образом: элемент $matches[0] содержит первый набор вхождений, элемент $matches[1] содержит второй набор вхождений, и так далее.
PREG_OFFSET_CAPTURE
В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Данный флаг доступен в PHP 4.3.0 и выше.
Medallion
Отправлено: 10 Июня, 2012 - 22:09:48
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012 Откуда: Херсон, Украина
Помог: 7 раз(а)
Проблема не в массивах, проблема, в том, что во втором варианте у меня отображается в первом массиве string one$$ $$string two
Тоесть регулярка нашла первое вхождение этих двух символов $$
и последнее, а мне нужно чтобы регулярка нашла $$string one$$ - поместила в первое значение массива, нашла $$string two$$ поместила в другое значение массива и т.д.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.