15 регулярных выражений PHP в помощь веб-разработчику

Регулярные выражения – это очень полезный инструмент для разработчиков. С их помощью можно находить, определять или заменять текст, слова или любые другие символы. В сегодняшней статье собраны 15 наиболее полезных регулярных выражений, которые пригодятся любому веб-разработчику.

Введение в регулярные выражения

Многим начинающим разработчикам кажется, что регулярные выражения очень сложны для понимания и использования. На самом деле, все не так уж сложно, как может показаться. Прежде чем мы непосредственно перейдем к регулярным выражениям, с их полезным и универсальным кодом, давайте взглянем на основы:

Синтаксис регулярных выражений

Регулярное выражение Означает
foo Строка “foo”
^foo Строка начинается с “foo”
foo$ Строка заканчивается на “foo”
^foo$ “foo” встречается в строке только один раз
[abc] a, b, или c
[a-z] любой символ в нижнем регистре
[^A-Z] любой символ, не находящийся в верхнем регистре
(gif|jpg) Означает как “gif” так и “jpeg”
[a-z]+ Один или более символов нижнего регистра
[0-9.-] Любая цифра, точка или знак минус
^[a-zA-Z0-9_]{1,}$ Любое слово, хотя бы одна буква, число или _
([wx])([yz]) wy, wz, xy, или xz
(^A-Za-z0-9) Любой символ (не число и не буква)
([A-Z]{3}|[0-9]{4}) Означает три буквы или 4 цифры

PHP-функции для регулярных выражений

Функция Описание
preg_match() Функция preg_match() ищет строку по заданному шаблону, возвращает true, если строка находится и false, в остальных случаях
preg_match_all() Функция preg_match_all() находит все вхождения строки, заданной по шаблону
preg_replace() Функция preg_replace(), действует по тому же принципу, что и ereg_replace(), за исключением того, что регулярные выражения можно использовать как для задания шаблона поиска, так и для строки, на которую следует заменить, найденное значение.
preg_split() Функция preg_split(), действует так же как split(), за исключением того, что регулярное выражение можно использовать в качестве параметра для шаблона поиска.
preg_grep() Функция preg_grep() ищет все элементы входного массива, возвращая все элементы, соответствующие шаблону регулярного выражения.
preg_quote() Экранирует символы регулярного выражения

Проверка доменного имени

Проверяем, является ли строка правильным доменным именем

[php]
$url = "http://komunitasweb.com/";
if (preg_match(‘/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i’, $url)) {
echo "Your url is ok.";
} else {
echo "Wrong url.";
}
[/php]

Подсветка слова в тексте

Это очень полезное регулярное выражение, с его помощью вы можете найти нужное слово и подсветить его. Особенно полезно для отображения результатов поиска.

[php]
$text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor";
$text = preg_replace("/b(regex)b/i", ‘<span style="background:#5fc9f6">1</span>’, $text);
echo $text;
[/php]

Подсветка результатов поиска в WordPress блоге

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

Откройте ваш файл search.php, и найдите функцию the_title(). Замените ее следующим кодом:

[php]
echo $title;
[/php]

Теперь, выше этой строки, добавьте этот код:

[php]
<?php
$title = get_the_title();
$keys= explode(" ",$s);
$title = preg_replace(‘/(‘.implode(‘|’, $keys) .’)/iu’,
‘<strong class="search-excerpt">\0</strong>’,
$title);
?>
[/php]

Сохраните файл search.php, и откройте style.css. Добавьте следующую строку:

[css]
strong.search-excerpt { background: yellow; }
[/css]

Получение всех картинок из HTML-документа

Если вам когда-нибудь требовалось получить все картинки с веб-страницы, этот код должен быть Вы легко сможете создать загрузчик изображений с помощью возможностей cURL

[php]
$images = array();
preg_match_all(‘/(img|src)=("|\’)[^"\’>]+/i’, $data, $media);
unset($data);
$data = preg_replace(‘/(img|src)("|\’|="|=\’)(.*)/i’, "$3", $media[0]);

foreach ($data as $url) {
$info = pathinfo($url);
if (isset($info[‘extension’])) {
if (($info[‘extension’] == ‘jpg’) ||
($info[‘extension’] == ‘jpeg’) ||
($info[‘extension’] == ‘gif’) ||
($info[‘extension’] == ‘png’))
array_push($images, $url);
}
}
[/php]

Удаление повторяющихся слов (не чувствителен к регистру)

Во время печатания, часто повторяются слова? Поможет это регулярное выражение.

[php]
$text = preg_replace("/s(w+s)1/i", "$1", $text);
[/php]

Удаление повторяющейся пунктуации

То же самое, только для пунктуации. Попрощайтесь с двойными запятыми.

[php]
$text = preg_replace("/.+/i", ".", $text);
[/php]

Поиск XML/HTML тэгов

Эта простая функция, принимает два аргумента. Первый – это тэг, который вам нужно найти, и второй – это переменная, содержащая XML или HTML. Повторюсь, эту функцию очень удобно использовать вместе с cURL.

[php]
function get_tag( $tag, $xml ) {
$tag = preg_quote($tag);
preg_match_all(‘{<‘.$tag.'[^>]*>(.*?)</’.$tag.’>.’}’,
$xml,
$matches,
PREG_PATTERN_ORDER);

return $matches[1];
}
[/php]

Поиск XHTML/XML тэгов с определенным значением атрибута

Эта функция очень похожа на предыдущую, за исключением того, что вы можете задать тегу нужный атрибут. Например, вы легко сможете найти <div id=”header”>.

[php]
function get_tag( $attr, $value, $xml, $tag=null ) {
if( is_null($tag) )
$tag = ‘\w+’;
else
$tag = preg_quote($tag);

$attr = preg_quote($attr);
$value = preg_quote($value);

$tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*".
"([‘\"])$value\\2[^>]*>(.*?)<\/\\1>/"

preg_match_all($tag_regex,
$xml,
$matches,
PREG_PATTERN_ORDER);

return $matches[3];
}
[/php]

Поиск шестнадцатеричных значений цветов

Еще один полезный инструмент для веб-разработчика! Он позволяет вам находить/проверять шестнадцатеричные значение цвета.

[php]
$string = "#555555";
if (preg_match(‘/^#(?:(?:[a-fd]{3}){1,2})$/i’, $string)) {
echo "example 6 successful.";
}
[/php]

Поиск заголовка статьи

Этот фрагмент кода найдет и выведет на экран текст, находящийся внутри тэгов <title></title>, на html-странице.

[php]
$fp = fopen("http://www.catswhocode.com/blog","r");
while (!feof($fp) ){
$page .= fgets($fp, 4096);
}

$titre = eregi("<title>(.*)</title>",$page,$regs);
echo $regs[1];
fclose($fp);
[/php]

Парсинг логов Apache

Большинство сайтов запущено на всем известном веб-сервере Apache. Если ваш сайт находится в их числе, почему бы не использовать PHP и регулярные выражения для разбора логов апача?

[php]
//Logs: Apache web server
//Successful hits to HTML files only. Useful for counting the number of page views.
‘^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$’

//Logs: Apache web server
//404 errors only
‘^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$’
[/php]

Замена двойных кавычек “умными” кавычками

Если вы любитель типографики, вам понравится это регулярное выражение, заменяющее обычные двойные кавычки, на “умные кавычки”. Похожее регулярное выражение используется в wordpress в контенте страницы.

[php]
preg_replace(‘B"b([^"x84x93x94rn]+)b"B’, ‘?1?’, $text);
[/php]

Комплексная проверка пароля

Это регулярное выражение будет следить за тем, чтобы в текстовое поле было введено не менее шести символов, цифры, дефисы и подчеркивания.

Текстовое поле должно содержать как минимум один символ верхнего регистра, один нижнего регистра и одну цифру.

[php]
‘A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z’
[/php]

WordPress: Использование регулярного выражения для получения картинок из записи

Поскольку многие из вас являются пользователями WordPress, вам возможно пригодится код, который позволяет получить все картинки, из текста статьи, и вывести их.

Для того, чтобы использовать этот код, просто вставьте его в любой файл вашей темы.

[php]
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

<?php
$szPostContent = $post->post_content;
$szSearchPattern = ‘~<img [^>]* />~’;

// Run preg_match_all to grab all the images and save the results in $aPics
preg_match_all( $szSearchPattern, $szPostContent, $aPics );

// Check to see if we have at least 1 image
$iNumberOfPics = count($aPics[0]);

if ( $iNumberOfPics > 0 ) {
// Now here you would do whatever you need to do with the images
// For this example the images are just displayed
for ( $i=0; $i < $iNumberOfPics ; $i++ ) {
echo $aPics[0][$i];
};
};

endwhile;
endif;
?>
[/php]

Генерация автоматических смайлов

Другая функция, используемая в wordpress – позволяет автоматически заменять символы смайлов на картинку смайла.

[php]
$texte=’A text with a smiley :-)’;
echo str_replace(‘:-)’,'<img src="smileys/souriant.png">’,$texte);
[/php]

Перевод статьи “15 PHP regular expressions for web developers”, автор Jean-Baptiste Jung


Posted

in

,

by

Tags:

Comments

58 responses to “15 регулярных выражений PHP в помощь веб-разработчику”

  1. Фарид Грамуддинов Avatar
    Фарид Грамуддинов

    Отличная статья!

  2. iMax Avatar
    iMax

    Оченно пользительно. Благодарствуем!

  3. Bethrezen Avatar

    Последнее как бы совсем не регексп.

  4. egorr Avatar
    egorr

    Шпаргалка очень полезная! Спасибо хозяйке блога!
    И позвольте поделиться несколькими ссылками, которые помогут(мне помогли)
    в изучении/написании/отладке регулярок.

    Большая, подробная статья о регулярных выражениях. Написана для тех, кто о них узнал только сегодня. Написана простым, понятным языком, изобирует примерами с подробными комментариями.
    h**p://www.phpclub.ru/detail/article/regexp_1
    h**p://www.phpclub.ru/detail/article/regexp_2

    Две статьи:
    Введение в регулярные выражения. Синтаксис.
    Регулярные выражения в PHP
    h**p://www.codenet.ru/cat/Languages/PHP/Regular-Expressions/

    RegExr – онлайн редактор и тестер регулярных выражений
    h**p://gskinner.com/RegExr/

    Лучшая программа для работы с регулярками. Создание, тестирование.
    Имеет огромную библиотеку регулярок на все случаи жизни. С её помощью можно создать регулярное выражение даже не обладая глубокими познаниями в regular expressions. Имеет встроеный дебагер.
    Очень рекомендую!
    h**p://www.regexbuddy.com/

    1. Леонд Avatar
      Леонд

      Поделись инструкцией. Я не понимаю англицкий

  5. Alazavar @ Израиль Avatar

    Очень полезная шпаргалка! надо ее распечатать и держать под рукой…а лучше постер на стену)) А то постоянно что-нибудь да забудешь

  6. Giljov Avatar

    Где я могу об этом прочитать?

  7. Юрий Avatar
    Юрий

    Статья полезная, только не все примеры верны. Например про доменное имя. Согласно правилам имя может содержать только цифры, латиницу и дефис. При это первый и последний символ не может быть дефисом. На доменную зону накладывается ограничение от 2 до 4 символов латиницы. Имя дмена как правило не может состоять только из одного символа, обычно от двух или трех. На полное имя – зона, домены, под домены вместе с точками, также органичение – не более 63 символов.

    Поэтому правильно проверять домен (не URL) так:
    if (strlen($domain < 64) && preg_match('/^([0-9a-z]([0-9a-z\-])*[0-9a-z]\.)+[a-z]{2,4}$/i', $domain))
    {
    echo ("domain OK");
    }
    else
    {
    echo ("domain wrong");
    }

    1. MyXa Avatar

      юзай
      function checkurl($url) {
      // режем левые символы и крайние пробелы
      $url=trim(pregtrim($url));
      // если пусто – выход
      if (strlen($url)==0) return 1;
      //проверяем УРЛ на правильность
      if (!preg_match(“~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}”.
      “(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|”.
      “org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?”.
      “!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&”.
      “?+=\~/-]*)?(?:#[^ ‘\”&]*)?$~i”,$url,$ok))
      return -1; // если не правильно – выход
      // если нет протокала – добавить
      if (!strstr($url,”://”)) $url=”http://”.$url;
      // заменить протокол на нижний регистр: hTtP -> http
      $url=preg_replace(“~^[a-z]+~ie”,”strtolower(‘\’)”,$url);
      return $url;
      }

  8. […] Полезные ссылки Posted on May 29, 2010 by korobuj блог по программированию,  вордпресс и регуляркам […]

  9. Demon Avatar

    Забыли ; поставить в Поиск XHTML/XML тэгов с определенным значением атрибута в строке 11

  10. Александр Avatar
    Александр

    Не поможете разобраться со следующей задачей, а то никак не могу найти решение, за одно думаю мне это поможет чтоб понять

    задача:

    есть вариации 3×256/3×100,3 или 3x256x100,3 или 3×256 или или 3×256/100,3

    как разобрать одним выражением?

    Пробовал разные варианты, но обязательно, где-то косяк вылезет.

    заранее спасибо

  11. Браток Avatar
    Браток

    Скрипт для XHTML/XML работает только для строки, если внутри тега будет много строчный текст – регулярное выражение не сработает. Т.к “.” – работает только для строки. Для того чтобы регулярка отработала, нужно добавить модификаторы
    m – Указывает на то, что текст, по которому ведется поиск, должен рассматриваться как состоящий из нескольких строкекста.
    s По умолчанию метасимвол ‘.’ не включает в свое определение символ перевода строки. Указание этого модификатора снимает это ограничение.

  12. Николай Avatar

    спасибо, отличная статья, нужная

  13. Pavluha.Net Avatar

    Хотел написать скрипт на регулярных выражениях, чтобы определял, какой текст в noindex, а какой нормально индексируется. В общем, написал, но если встречается иерархическая структура noindex (а бывает и такое), то возникают проблемы. Например (тут 1о – первый открывающий тег, 1з – первый закрывающий и т.д.): текст 1о текст 2о текст 2з текст 3о текст 3з текст 1з текст индексируется 4о текст 4з. Тут скрипт определяет в noindex отрезок [1о – 4з], если паттерн жадный. Если же не жадный, то тогда в noindex: [1о – 2з], [3о – 3з] и [4о – 4з] (но текст между 2з и 3о тоже не должен индексироваться). В общем, жадный забирает слишком много, нежадный – слишком мало. Как найти золотую середину?

  14. darkslave Avatar

    разбор хтмл тегов — увы задача не такая тривиальная как кажется.. т.к. в одном случае рег. выражение сработает, а в другом нет..
    к примеру #]*>#
    выдаст совсем не то, если в значении атрибута будет >
    можно было бы написать рег. выражение типа
    #<([^\s/]+)((?:\s+[^\”‘>]+(?:\”[^\”]*\”|'[^’]*’|[^>]*))*|/)># (взято из tinyMCE)
    но оно тоже не всегда работает! хотя для 99% случаев подходит =)

  15. slava Avatar
    slava

    Да очень поезная статейка, тоько скрипт почему то не работает – Использование регулярного выражения для получения картинок из записи – Parse error on line 25 и Получение всех картинок из HTML-документа ошибку выдает почему то – on line 9 ?

  16. Алексей Муравьев-Каменев Avatar
    Алексей Муравьев-Каменев

    Только что наткнулся на ошибку при использовании функции для поиска картинок в тексте, просто некоторые фотоаппараты сохраняют картинку с расширением myimage.JPG (верхний регистр ) и предложенная функция не находит картинки
    Вот что я поменял

    if ((strcasecmp($info['extension'], 'jpg')) == 0 ||
    (strcasecmp($info['extension'], 'jpeg')) == 0 ||
    (strcasecmp($info['extension'], 'gif')) == 0 ||
    (strcasecmp($info['extension'], 'png')) == 0 )

    И о чудо у меня всё заработало !!!!! 🙂 🙂 🙂

  17. slava Avatar
    slava

    Приветствую. Не подскажите как решить такую задачу?
    Имеется html страница, сохраненная в текстовом формате, с текстом и разными сылками, там есть ссылка – http://www.google.com/recaptcha/api/image?c=03AHJ_VusbLjn_T5zg4xAmgb1lyzEZ3q2AjTn0nLjv4mD4GKISkLukUHHT2cIQdbJyzZUDg7tOJgIAR2nm_t8p9sVjm7Rb7aApLqNuPauN0eSTMeTbrgTq4ScIVajh5y2BpT1xWaT5-6c8YnEkOKqXca73eBw0-Fg
    как извечь и записать первую такую ссыку (там их несколько) в чистом виде, в другой txt файл используя как признак – часть этой ссылки – recaptcha/api/image
    Нужен универсальный скрипт, что бы можно было вытаскивать другие ссылки используя как признак их часть, самому подставляя эти признаки в шаблон.

  18. egorr Avatar
    egorr

    Не ломалку ли для капчи пишешь? Чтобы спамить потом? Не помогайте, коллеги…

  19. Андромеда Avatar
    Андромеда

    Всем привет!
    Получилось отловить картинки и добавить им тег alt, но на выходе не срабатывает форматирование(используется визуальный редактор), помогите, подскажите, пож, в чем проблема.
    Код:
    $pattern = “#]*src=([\”‘])?([^\s]+)\\1[^>]*\/?>#is”;
    $preg = array(
    $pattern => ”, //перед img поставила \ (слеш) , его нет по идее
    );
    $body = preg_replace(array_keys($preg), array_values($preg), $body);
    return $body;

    Т.е. нет обтекания текстом картинки.

    Спасибо.

  20. byu77 Avatar

    Лучшая программа для работы с регулярками. Создание, тестирование.

  21. Лютый Avatar

    Очень полезная статья, шпаргалка программистам

  22. Орион Avatar

    довольно хорошо представлена подборка, взял себе на заметку некоторые полезные вещи.

  23. Jim Avatar
    Jim

    Хоть бы первоисточник указал!

    1. dreamhelg Avatar
      dreamhelg

      А вы внимательно прочитали текст статьи, прежде чем писать этот комментарий?

  24. anonimus Avatar
    anonimus

    $images = array();
    preg_match_all(‘/(img|src)=(“|’)[^”‘>]+/i’, $data, $media);
    unset($data);
    $data=preg_replace(‘/(img|src)(“|’|=”|=’)(.*)/i’,”$3”,$media[0]);
    foreach($data as $url)
    {
    $info = pathinfo($url);
    if (isset($info[‘extension’]))
    {
    if (($info[‘extension’] == ‘jpg’) ||
    ($info[‘extension’] == ‘jpeg’) ||
    ($info[‘extension’] == ‘gif’) ||
    ($info[‘extension’] == ‘png’))
    array_push($images, $url);
    }
    }
    Автор… сам то проверял свои регулярки… или просто содрал не думая?

    1. dreamhelg Avatar
      dreamhelg

      Автор (если вы обо мне), понадеялся на автора оригинального поста и сам не проверял, но благодаря вашему ценному, хотя и малоинформативному замечанию, обнаружил неэкранированный апостроф. Спасибо за комментарий.

      1. Витал Avatar
        Витал

        Автор, хоть исправьте для тех, кто в будущем заходит на сайт:
        . (точка) – означает любой символ, если же вам нужна именно “точка”, то ее надо слэшить – \.
        (d+) – это я так понимаю одна или несколько цифр, а на самом деле будет искать букву d, тоже надо слэш – (\d+)
        да и обычный слэш / тоже желательно слэшить – \/

        Это я только проверку url посмотрел… кстати в имени домена в начале может и не быть никаких http и пр. этот вариант вами не учтен.

  25. […] 15 регулярных выражений PHP в помощь веб-разработчику […]

  26. Peopletravel Avatar

    обязательно распечатаю и буду держать эти заметки на рабочем столе, Автор молодец что не поленился всё это искать

  27. EGORR Avatar
    EGORR

    Недавно пришлось писать скрипт поиска в тексте российских мобильных номеров. Готовые решения не подошли потому, что неизвестен формат ввода этих номеров. Мой заказчик(хозяин риэлторской компании) просил помочь выявить менеджеров, которые постят на сайт предложения и переводят стрелки на себя, указывая свой, а не корпоративный номер телефона.
    Посидев пару часиков родил вот такое решение:

    Уверенно парсит номера вот такого вида:
    8 910 82 570 26
    +79261234567
    89261234567
    79261234567
    +7 926 123 45 67
    8(926)123-45-67
    8 (926)123-45-67
    8-(926)123-45-67
    9261234567
    79261234567
    89261234567
    8-926-123-45-67
    8 927 1234 234
    8 927 12 12 888
    8 927 12 555 12
    8 927 123 8 123

    1. EGORR Avatar
      EGORR

      Ой, код пропал из предыдущего сообщения… Я его в тег code обернул, а он пропал…
      Вот он:
      preg_match_all( ‘/(8|7|\+7){0,1}[- \\\\(]{0,}([9][0-9]{2})[- \\\\)]{0,}(([0-9]{2}[- ]{0,}[0-9]{2}[- ]{0,}[0-9]{3})|([0-9]{3}[- ]{0,}[0-9]{2}[- ]{0,}[0-9]{2})|([0-9]{3}[- ]{0,}[0-9]{1}[- ]{0,}[0-9]{3})|([0-9]{2}[- ]{0,}[0-9]{3}[- ]{0,}[0-9]{2}))/’, $text, $regs );

  28. Беспечный Ангел Avatar

    Скрипт не рабочий

    $url = “http://komunitasweb.com/”;
    if (preg_match(‘/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i’, $url)) {
    echo “Your url is ok.”;
    } else {
    echo “Wrong url.”;
    }

    PHP Warning: preg_match(): Unknown modifier ‘/’ in /home/a11012/litechat/test/1.php on line…

  29. Dmitry Avatar
    Dmitry

    Почему никто не пользуется площадкой для тестрования регулярных выражений? Можно сохранять без регистрации и т.п.

    Реально классная штука, вот например выбор картинок из html документа http://pcreonline.com/vybor-vsex-kartinok-iz-html-dokumenta/

    1. egorr Avatar
      egorr

      А из чего следует, что никто не пользуется?

      1. Юрий Avatar
        Юрий

        А что такое umis в выборе картинок ?

    2. Леонид Avatar
      Леонид

      Как ей пользоваться Где инструкция

      1. Dmitry Avatar
        Dmitry

        Документации пока нет, есть небольшое описание здесь http://mod-site.net/ru/info/onlayn-ploschadka-dlya-testirovaniya-i-hraneniya-regulya_184705.shtml

  30. Евгений Avatar
    Евгений

    Здрасте!
    Я попробвал вашу регулярку для проверки доменного имена и у меня выскочила ошибка:
    Unknown modifier ‘?’

    но регулярка выполнилась успешно.
    В чем причина ошибки?

  31. HeadHunter Avatar

    Народ плиз подскажите регулярное выражение для поиска ширины картинки width=”550″ или бывает width=”100%”

  32. Корри Avatar
    Корри

    При помощи регулярных выражений выделите в файлах сохраненных страниц page01, page02 и page03 записи о товарах. Создайте на основе полученных сведений массив вида:

    Array (
    Array (
    ’Title’ => ’наименование товара’,
    ’Link’ => ’ссылка на товар’,
    ’Cost’ => ’стоимость товара’
    ),
    Array (
    ’Title’ => ’…’,
    ’Link’ => ’…’,
    ’Cost’ => ’…’
    ),

    )

    Исключите дубликаты товаров с одинаковой ссылкой. Выведите на экран все товары в порядке возрастания стоимости.

    помогите пожалуйста с кодом.

  33. Оскар Avatar
    Оскар

    Леонид
    25.11.2012 в 11:14

    Как ей пользоваться Где инструкция

    Согласен

  34. Yionew Avatar

    Спасибо очень помогли!

  35. Станислав Avatar

    Не хватает обратных слешей и фигурных скобок в “Удаление повторяющ(ихся|ейся)[\w\s\)\(]+”. В таком виде они бесполезны.

  36. Павел Avatar
    Павел

    Автору БОЛЬШОЕ спасибо!

  37. Алексей Avatar

    В примере для поиска XML/HTML тэгов, кажется, кавычка потерялась: ‘{]*>(.*?).’}’

    Во всяком случае, их нечётное количество.

    А для чего нужны фигурные скобки в данном случае?

  38. Anfa Avatar
    Anfa

    возможно будет полезно использовать ещё и модификаторы http://ru2.php.net/manual/en/reference.pcre.pattern.modifiers.php в регулярках

  39. Alex Avatar
    Alex

    Мне на первых этапах помог сервис генерации простых регулярных выражений для новичков.

  40. dead_elf Avatar
    dead_elf

    в “Подсветка слова в тексте” регулярка с ошибками
    там вот так preg_replace("/b(regex)b/i", '1', $text);
    а должно быть
    preg_replace("/(regex)/", '\1', $text);

  41. Н. Avatar
    Н.

    $text = preg_replace(“/.+/i”, “.”, $text);

    Чтобы действительно заменило повторяющиеся точки, то нужно сделать так

    $text = preg_replace(“/\.+/i”, “.”, $text);

    В ином случае просто вся строка будет заменена на одну точку.

  42. TryHard Avatar
    TryHard

    я в замешательстве. Первый же пример не работает.
    Warning: preg_match(): Unknown modifier ‘/’
    и само собой
    Wrong url
    поясните пожалуйста, в чем проблема. PHP 5.6.
    Можно хоть краткое описание для представленных регулярок – что за чем проверяется, хотя бы для того же урла. Спасибо.

    1. TryHard Avatar
      TryHard

      экранировал два слеша после протокола, ругается на модификатор /? – все еще Wrong url при любых раскладах. А без этого модификатор любой урл считается годным(

      1. karbonad Avatar
        karbonad

        надеюсь, ты еще не умер, чтобы сработал пример нужно заменить разделитель / вначале и в конце на #

  43. Кирилл Avatar

    Спасибо большое за регулярки! Вы мне очень облегчили труд 🙂

  44. Дмитрий Avatar

    Ничего не получается с кириллицей
    Вообще ничего не получается! Можно попроще объяснить?
    дайте простой пример !

  45. Andrey Avatar
    Andrey

    Большое спасибо, час не получалась регулярка, пока не наткнулся на ваш сайт.

Leave a Reply to Vermilion Cancel reply

Your email address will not be published. Required fields are marked *