Ответов: 67 Просмотров: 4515
|
Ответы на вопросы по теме "Регулярные выражения"
Представляю Вам свой вариант решения задач по выше указанной теме.
1. У вас есть php-код. Строковые индексы массивов в нем не заключены в кавычки. Вам надо заключить их в кавычки. Но учтите, что индексами массивов в коде могут быть и переменные, и функции - они не должны оказаться в кавычках. Объявленные константы в расчет не берем.
ответ
CODE ( htmlphp):
скопировать код в буфер обмена
$a = 1; function fct(){ return 2; } $arr = array( a => 'алекс', ba => 'баранов', $a => 'переменная', с => 'саша', fct() => 'функция' ); $pattern = '/(?<!\${1})[\d|\w]+\s=>/'; $replace = '\'\1\''; preg_replace($pattern, $replace, $arr); echo var_dump($arr);
2. Дана строка. Проверьте, все ли символы в ней уникальны.
ответ
CODE ( htmlphp):
скопировать код в буфер обмена
$str = 'sd34gd32'; $char = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); $match = array(); foreach($char as $item): if(in_array($item, $match)) { echo "This char is not unique => $item <br>"; } else { $match[] = $item; } endforeach;
3. Проверьте синтаксическую правильность строки, содержащей e-mail
ответ
^[a-zA-Z0-9-\.]+@[a-zA-Z0-9-]+\.[a-z]{2,3}$
4. Проверьте синтаксическую правильность даты. Формат даты 'dd-mm-yyyy'. День и месяц, меньший 10 может быть записан одной цифрой. Неплохо было бы проверить так же на то сколько в месяце дней. Високосность года учитывать не надо.
ответ
CODE ( htmlphp):
скопировать код в буфер обмена
date_default_timezone_set('UTC'); $filed_date = '01-010-2015'; $count_date = date('t'); $matches = array(); if(preg_match('/^([0-9]{1,2})-([0-9]{1,2})-[0-9]{4}$/', $filed_date , $matches) && $matches[1] <= $count_date && $matches[2] <= 12){ echo 'Date\'s format is valid'; } else{ echo 'Date\'s format is not valid'; }
5. Найдите все ссылки на странице.
ответ
CODE ( htmlphp):
скопировать код в буфер обмена
$html = "Текст <a href='page1.html'>ссылка</a> и снова <a hREF \n =\"page2.html\" title=''>ссылка</a> конец"; $href = array(); preg_match_all("/[Aa]\s{1}[Hh][Rr][Ee][Ff][^=]*=['\"\s]*([^\"'>\s#]+)[^>]*>/", $html, $href); echo var_dump($href);
По последнему заданию - пример нашел в нете, так что это не совсем
мое авторство.
Пишите коменты, указывайте на ошибки - буду рад их анализировать ;)) |