Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Регулярные выражения. Тренировки teddy
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Ребята, вообщем я решил надавить на знания в области регулярок и необходима ваша помощь. Собственно прошу более опытных разработчиков просто писать сюда для меня задачи различного направления по регулярным выражениям. Желательно не от балды а те которые реально встречаются на практике чаще всего
Сложность: от простого к сложному. Не важно матч или реплейс, любые.
Начнем с простых а потом уже на более сложные перейдем. По мере возможности буду выкладывать сюда свои решения и если будет ступор, наверное буду спрашивать вас
Если найдутся те кто захочет поучаствовать в моем марафоне - буду только рад
П:С при наличии задач просьба других форумчан не писать свои решения чтоб я думал сам...
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Напишите аналог функции wordwrap для многобайтовых кодировок с использованием регулярных выражений )
я начинал, но через 2 дня мучений забросил, воспользовавшись решением из Zend FW. http://forum.php.su/topic.php?fo...35&topic=823
EuGen
Отправлено: 17 Августа, 2013 - 21:38:15
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
teddy
Напишите регулярное выражение, которое будет находить IP-адрес. Вариации задачи:
0. Написать выражение, которое будет проверять правильность строки по октетам, без учёта предельных значений IPv4
1. Написать выражение, которое будет проверять правильность строки по октетам, с учётом предельных значений IPv4 (т.е. 0-254)
2. Выражение для IPv6 адреса.
Это часто встречается, например, при анализе лог-файлов.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
teddy
Отправлено: 17 Августа, 2013 - 22:46:31
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
armancho7777777
Да уж... )) Я попробую, но когда будет и будет ли вообще адекватное решение - гарантировать не могу, к сожалению
EuGen
Постараюсь до завтра все варианты предоставить.
Спасибо за внимание )
Саныч
Отправлено: 17 Августа, 2013 - 23:03:52
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
teddy, подкину вам еще одно задание. Недавно на форуме была такая тема, я там заморочился с регуляркой. Но вы не подсматривайте!
Задача: есть строка, в ней задан CSS цвет в любом возможном формате.
Цвет может задаваться следущими форматами:
1. HEX, 3 или 6 цифр, примеры: #f00, #abcd12
2. RGB, пример: rgb(123, 0, 44). Цифры естественно в пределе 0 - 255
3. RGBA, пример: rgba(123, 0, 44, .8). См. пункт 2, плюс четвертое значение в пределах 0 - 1, причем нуля может и не быть
4. HSL, пример: hsl(300, 50%, 0%). Первое значение в пределах 0 - 359, второе и третье - 0 - 100%
5. HSLA, пример: hsla(300, 50%, 0%, 0.45). См. пункт 4, четвертый параметр аналогично RGBA.
6. Просто название цвета, одно из: transparent, white, silver, gray, black, maroon, red, orange, yellow, olive, lime, green, aqua, blue, navy, teal, fuchsia, purple.
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
teddy
Отправлено: 17 Августа, 2013 - 23:11:32
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Саныч
Я видел эту тему ))) сложная была регулярка Мне бы что нибудь по проще... ) Хотя тут запарка скорее всего будет с поиском нужной информации, придется перелопатить разные таблицы цветов, разобраться и потом уже что то писать Мне бы просто руку набить на написании шаблонов... Больше заданий - но не очень сложные ) От простого - сложному ) Я конечно учту и это задание, но думаю постараюсь выполнить только если простых заданий больше не будет
Цель данного топика - получать различные не сложные задания или средней сложности просто для того что бы набить руку для составления шаблонов регулярных варежний )
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
teddy, на самом деле ничего сложного. Объемная, да, но не сложная.
На самом деле здесь 6 (по количеству частей) регулярок объединенных через или...
Вобщем смотрите сами, мое дело предложить. По цветам вся инфа - http://htmlbook[dot]ru/css/value/color
Даже не знаю, что еще предложить. IP уже задали.
Ну можете банально написать регулярку для проверки URI или e-mail адресса. Ну только не просто так символ-собака-символ-точка-символ, а с учетом допустимых символов, длин, региональные домены и т.д. и т.п.
Саныч
Спасибо за ссылку Так я не браковал ваше задание, просто в данный момент честно говоря главная цель это набить руку на самих шаблонах, а в дальнейшем уже наверное буду решать и более разнообразные задачи с привкусом регулярок
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
teddy
Отправлено: 18 Августа, 2013 - 00:45:31
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Саныч
А что, шанс ещё остался )) Я исправился. Но только не пойму один момент и баг ли это.
При попытке задать меньше 4 значений в адресе, например 127.0.0 то строка все равно проходит фильтр. Пробовал через + принудить к вводу каждой части но не вышло. Получилось только первую часть сделать принудительной...
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
. экранируй
скобки не нужны (Добавление)
/^\d{1,3}(\.d{1,3}){3}$/
Саныч
Отправлено: 18 Августа, 2013 - 01:04:03
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
teddy, в данный момент регулярка неверная.
0. Смотрите что означает символ точка в регулярках и что нужно сделать.
1. Зачем лишние скобки?..
2. Регулярка намного меньше получается.
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
teddy
Отправлено: 18 Августа, 2013 - 01:05:58
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
LIME пишет:
скобки не нужны
Во втором задании понадобились... хотя не знаю насколько это корректно.(Старый пост обновил, добавил решение второй задачи) (Добавление)
Саныч пишет:
Смотрите что означает символ точка в регулярках и что нужно сделать.
Точка это любой символ, а мне ведь цифры нужны
DelphinPRO
Отправлено: 18 Августа, 2013 - 01:07:47
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
teddy пишет:
/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/
точка в регулярных выражениях - спецсимвол. нужно экранировать, если вы имеете ввиду именно точку.
----- Чем больше узнаю, тем больше я не знаю.
Саныч
Отправлено: 18 Августа, 2013 - 01:08:38
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
teddy пишет:
добавил решение второй задачи
Эээ, нет, так не пойдет. Вы же собирались регулярки учить, а полезли в цикл PHP.
Учитывайте допустимые значения в самой регулярке.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.