Рубрика: Веб-разработка » PHP »

PHP: примеры регулярных выражений

Регулярные выражения позволяют выполнять более сложный поиск и замену в строке

1. Если нужно обрабатывать в цикле только файлы с заданными расширениями, в данном случае это файлы изображений:

if (!ereg("^(.*).(gif|jpg|jpeg|png)$", $item, $p)) continue;

*** Здесь $p- это массив найденных совпадений
*** continue - значит перейти к следующей итерации цикла
2. Замена расширения .ad или .tmx на расширение .txt

$item="._AAABBBCC.3ER_453.34.df.ad"
echo ereg_replace (".ad|.tmx", ".txt", $item);

Получаем

._AAABBBCC.3ER_453.34.df.txt

3. "Стираем" символы ._ или _

$temp=ereg_replace ("(._|_)", "", $temp);

Получаем

AAABBBCC.3ER453.34.df.txt

4. "Стираем" все символы между (. цифра или цифры)  и любым количеством цифр

$pattern = "((.[0-9]+).+[0-9]+)";
$replacement ="";
$temp=preg_replace($pattern, $replacement, $temp);

Получаем

AAABBBCC.txt

5. Переставляем местами

$string = "May 10, 2009";
$pattern = "/(w+) (d+), (d+)/i";
preg_replace($pattern, $replacement, $string);

*** Здесь (w+) обозначает любое количество (но не ноль) букв англ. алфавита, а (d+) - любое количество цифр.
Для $replacement = "$3, $2, $1"; получаем:

2009, 10, May

Для $replacement = "${1} 1,$3"; (вместо $2жестко заданное значение 1) получаем:

May 1,2009

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

  • Круглые скобки () - выделение группы символов
  • ^ - начало строки
  • $ - конец строки
  • . (точка) - любой символ
  • | - альтернатива. Например, выражения "A|B" и "(ABC|DEF)" означают "A или B" и "ABC или DEF" соответственно.
  • ? ставится после символа (или группы символов), который может как присутствовать, так и отсутствовать. Например, выражению "jpe?g" подойдет и строка "jpg", и строка "jpeg". Пример выражения с группой символов: "super-(puper-)?site".
  • * ставится после символа (или группы символов), который может отсутствовать или присутствовать неограниченное число раз подряд. Например, выражению "jpe*g" подойдут строки "jpg", "jpeg" и "jpeeeeeeg".
  • + действует аналогично * , но предшествующий символ обязательно должен присутствовать хотя бы один раз. Например, выражению "jpe+g" подойдут строки "jpeg" и "jpeeeeg", но не "jpg".
  • Квадратные скобки [] используются для перечисления допустимых символов. Например, выражение "[abc]" равносильно выражению "a|b|c", но вариант с квадратными скобками обычно является более оптимальным по быстродействию. Внутри скобок можно использовать диапазоны: выражение "[0-9]" равносильно выражению "[0123456789]". Если символы внутри квадратных скобок начинаются с символа ^, это означает любой символ, кроме перечисленных в скобках. Например, выражение "[^0-9]+" означает строку из любых символов, кроме цифр.
  • Символ ставится перед спецсимволами, если они нужны в своем первозданном виде. Например, выражению "jpe+g" соответствует только одна строка "jpe+g"

Полезные ресурсы:

"Полигон" для проверки регулярных выражений-Конструктор регулярных выражений

Опубликовано в рубрике PHP | с метками , . |

Еще записи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *