Регулярные выражения позволяют выполнять более сложный поиск и замену в строке
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"
Полезные ресурсы:
"Полигон" для проверки регулярных выражений-Конструктор регулярных выражений